迁移与forms.py发生冲突
问题描述:
命令python manage.py makemigrations
由于forms.py
而导致大部分时间都失败,其中在类定义级别引用了新模型或新字段。迁移与forms.py发生冲突
所以我必须评论每个这样的迁移操作定义。这是一个痛苦的任务。
我不明白为什么迁移过程导入forms.py
模块。我认为导入模型模块应该足够了。
有没有办法避免这些错误?
答
感谢@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
原代码,但我假设有一个更好的方法来知道当前进程是否是一个迁移。如果是这样,请告知。
您还没有显示回溯,但我的猜测是Django检查框架正在加载url,后者依次加载视图和表单。您应该能够重组表单以避免错误,但除非您显示一些代码,否则我们无法提供帮助。 [这个问题](http://*.com/questions/37726396/upgrading-from-django-1-6-to-1-9-python-manage-py-migrate-failure/37747009#37747009)是类似的。 – Alasdair
谢谢@alasdair。如果迁移导入'url.py',那么我理解我的问题。我仍然不明白为什么它会输入网址!我很惊讶其他人不会声称这一点。 – albar
这是系统检查导入的URL,而不是迁移。在makemigrations命令之前运行[系统检查](https://docs.djangoproject.com/en/1.10/topics/checks/#module-django.core.checks)。 – Alasdair