2016-09-16 6 views
3

のコマンドpython manage.py makemigrationsは、クラス定義レベルで新しいモデルや新しいフィールドが参照されるため、ほとんどの場合失敗します。移行がforms.pyでマイグレーションする

私は、マイグレーションが動作するように、それぞれの定義をコメントする必要があります。それは痛い仕事です。

なぜ移行処理でforms.pyモジュールがインポートされるのかわかりません。私は、モデルモジュールをインポートするだけで十分だと思います。

これらのエラーを回避する手段がありますか? @alasdairする

+1

あなたはトレースバックを表示していませんが、Djangoチェックフレームワークがurlをロードしていて、ビューとフォームをロードしていると思います。エラーを避けるためにフォームを再構成できるはずですが、コードを表示しない限り、そのフォームを手助けすることはできません。 [この質問](http://stackoverflow.com/questions/37726396/upgrading-from-django-1-6-to-1-9-python-manage-py-migrate-failure/37747009#37747009)は似ています。 – Alasdair

+0

ありがとう@alasdair。移行で 'url.py'がインポートされた場合、私は自分の問題を理解しています。私はまだそれがURLをインポートする理由を理解していない!私は他の人々がそれについて主張していないことに驚いています。 – albar

+1

マイグレーションではなく、URLをインポートするのはシステムチェックです。 [システムチェック](https://docs.djangoproject.com/en/1.10/topics/checks/#module-django.core.checks)は、makemigrationsコマンドの前に実行されます。 – Alasdair

答えて

1

おかげで私は私の問題を理解し、回避策が見つかりました:私はそれは私の場合は正常に動作しますが、私

import sys 
if 'makemigrations' not in sys.argv and 'migrate' not in sys.argv: 
    from MyApp import forms 

views.pyファイルに

from MyApp import forms 

を元のコードを置き換えます現在のプロセスが移行かどうかを知るためのより良い方法があるとします。もしそうなら、助言してください。

関連する問題