2016-09-16 24 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 

原代码,但我假设有一个更好的方法来知道当前进程是否是一个迁移。如果是这样,请告知。

相关问题