2016-09-16 72 views
3

命令python manage.py makemigrations由於forms.py而導致大部分時間都失敗,其中在類定義級別引用了新模型或新字段。遷移與forms.py發生衝突

所以我必須評論每個這樣的遷移操作定義。這是一個痛苦的任務。

我不明白爲什麼遷移過程導入forms.py模塊。我認爲導入模型模塊應該足夠了。

有沒有辦法避免這些錯誤?

+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',那麼我理解我的問題。我仍然不明白爲什麼它會輸入網址!我很驚訝其他人不會聲稱這一點。 – albar

+1

這是系統檢查導入的URL,而不是遷移。在makemigrations命令之前運行[系統檢查](https://docs.djangoproject.com/en/1.10/topics/checks/#module-django.core.checks)。 – Alasdair

回答

1

感謝@alasdair我明白我的問題,並找到了一個解決辦法:我

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

它工作正常,在我的情況替換views.py文件

from MyApp import forms 

原代碼,但我假設有一個更好的方法來知道當前進程是否是一個遷移。如果是這樣,請告知。