Django,我在 manage.py 检查或 sync.db 时收到“错误:模块:无法导入模型”
Posted
技术标签:
【中文标题】Django,我在 manage.py 检查或 sync.db 时收到“错误:模块:无法导入模型”【英文标题】:Django, I am getting "ERROR: Module: models could not be imported" while manage.py check or sync.db 【发布时间】:2016-03-01 21:30:23 【问题描述】:将我的应用程序添加到 INSTALLED_APPS 部分后,我无法制作
python manage.py check
- 它返回一个错误。
请你帮我找出我做错了什么?
1) console window with an error @line55 of models.py
控制台文本:
(py350-dja185-venv)MacBook-Pro:recipe_1_1 mac1$ python manage.py check shell Traceback(最近一次调用最后一次):文件“manage.py”,第 10 行, 在 execute_from_command_line(sys.argv) 文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/core/management/init.py”,行351,在execute_from_command_line中 utility.execute() 文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/core/management/init.py”,第 325 行, 在执行 django.setup() 文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/init.py”, 第 18 行,在设置中 apps.populate(settings.INSTALLED_APPS) 文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/apps/registry.py”, 第 108 行,在填充 app_config.import_models(all_models) 文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/apps/config.py”, 第 198 行,在 import_models 中 self.models_module = import_module(models_module_name) 文件 "/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/importlib/init.py", 第 126 行,在 import_module 中 return _bootstrap._gcd_import(name[level:], package, level) File "", line 986, in _gcd_import File "",第 969 行,在 _find_and_load 文件中 "",第 958 行,在 _find_and_load_unlocked 文件“”,第 673 行,在 _load_unlocked 文件“”,第 662 行,在 exec_module 文件“”,第 222 行,在 _call_with_frames_removed 文件“/Users/mac1/Documents/workspace/recipe_1_1/meals/models.py”,第 55 行, 在 类成分(models.Model):文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/db/models/base.py”, 第 308 行,新 new_class._prepare() 文件“/Users/mac1/Envs/py350-dja185-venv/lib/python3.5/site-packages/django/db/models/base.py”, 第 361 行,在 _prepare cls.doc = "%s(%s)" % (cls.name, ", ".join(f.name for f in opts.fields)) TypeError :序列项 7:预期的 str 实例,int 找到了
2) 一段代码@models.py 为什么它在第 55 行给我一个错误?
36-39 MEASUREMENT_CHOICES = (('шт', 'штук'), ...,)
41 class Recipe(models.Model):
42 recipe_id = models.PositiveIntegerField()
43 meal_id = models.ForeignKey('Meal')
44 ingredient_id = models.ForeignKey('Ingredients', related_name = '+')
45 ingr_quantity = models.PositiveSmallIntegerField()
46 ingr_measurement = models.CharField(max_length = 5, choices = MEASUREMENT_CHOICES)
47 tail = models.CharField(max_length = 35)
49 SEASON_CHOICES = ((u'01', u'январь'), (u'02', u'февраль'), (u'03', u'март'),
(u'04', u'апрель'), (u'05', u'май'), (u'06', u'июнь'),
(u'07', u'июль'), (u'08', u'август'), (u'09', u'сентябрь'),
(u'10', u'октябрь'), (u'11', u'ноябрь'), (u'12', u'декабрь'),
)
55 class Ingredients(models.Model):
56 ingr_name = models.CharField(max_length = 20)
57 ingr_category = models.ForeignKey('IngrCategory')
58 calories_raw = models.PositiveSmallIntegerField()
59 calories_boiled = models.PositiveSmallIntegerField()
60 calories_fried = models.PositiveSmallIntegerField()
61 ingr_unit = models.CharField(10)
62 price_in_season = models.DecimalField(7,2)
63 price_in_no_season = models.DecimalField(7,2)
64 price_current = models.DecimalField(7,2)
65 season = models.CharField(max_length = 2, choices = SEASON_CHOICES)
不知何故,它通过了食谱类,也通过了上一课,并在class Ingredients(models.Model)
行给了我一个错误。为什么?
3) eclipse窗口——同一个项目,不同的错误类型:
查找文件...完成。 导入测试模块...完成。 Traceback(最近一次通话最后一次):<...> 文件“/Applications/Eclipse.app/Contents/Eclipse/plugins/org.python.pydev_4.3.0.201508182223/pysrc/pydev_runfiles.py”,第 813 行,在 run_tests raise AssertionError("无法使用 DjangoTestSuiteRunner 运行套件,因为它无法导入。") AssertionError: 无法使用 DjangoTestSuiteRunner 运行套件,因为它无法导入。
非常感谢您的帮助。
【问题讨论】:
这里显示的是完整的Ingredients
类代码吗?
下次请将控制台上下文作为文本粘贴到问题中,而不是粘贴在空白处的图片。
MEASUREMENT_CHOICES
的值是多少?
Michal F,不,这里显示的成分类不完整。 trinchet,MEASUREMENT_CHOICES 是用俄语写的,类型是字符串,最多 5 个字符。
【参考方案1】:
问题在于没有“max_digits =”和“decimal_places =”
62 price_in_season = models.DecimalField(max_digits = 7, decimal_places = 2)
此字段是成分类中的序列号 7。
【讨论】:
以上是关于Django,我在 manage.py 检查或 sync.db 时收到“错误:模块:无法导入模型”的主要内容,如果未能解决你的问题,请参考以下文章
我在django中使用命令manage.py makemigrations [关闭]出错]]
django-admin startapp v/s python manage.py startapp [重复]