【发布时间】:2016-08-27 10:36:36
【问题描述】:
我在导入时遇到了奇怪的问题
我创建了新应用并尝试将一些模块移到那里,因为我的一些应用变得非常大。
我创建了新的应用产品,将其添加到我的设置文件中并写入 product/model.py
from django.db import models
from author.decorators import with_author
from item.models import ItemGroup
from item.models import Material
# Create your models here.
@with_author
class Product(models.Model):
code = models.CharField(max_length=30, unique=True)
name = models.CharField(max_length=30)
description = models.TextField(null=True, blank=True)
creation_time = models.DateTimeField(auto_now_add=True, blank=True)
itemgroup = models.ForeignKey(ItemGroup, on_delete=models.PROTECT)
material = models.ForeignKey(Material, on_delete=models.PROTECT)
keywords = models.CharField(max_length=50,null=True, blank=True)
valid_from = models.DateTimeField(null=True, blank=True)
valid_to = models.DateTimeField(null=True, blank=True)
style1 = models.CharField(max_length=30,null=True, blank=True)
style2 = models.CharField(max_length=30,null=True, blank=True)
style3 = models.CharField(max_length=30,null=True, blank=True)
size = models.CharField(max_length=30,null=True, blank=True)
dimension = models.CharField(max_length=30,null=True, blank=True)
color = models.CharField(max_length=30,null=True, blank=True)
def __unicode__(self):
return u'%s %s %s' % ( self.id, self.code, self.name)
当我执行时
>python manage.py makemigrations item
>python manage.py makemigrations product
我收到一个错误
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\__ini
__.py", line 338, in execute_from_command_line
utility.execute()
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\management\__ini
__.py", line 312, in execute
django.setup()
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\__init__.py", line 18
in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\apps\registry.py", li
e 108, in populate
app_config.import_models(all_models)
File "C:\Users\I812624\dev\mrp\lib\site-packages\django\apps\config.py", line
198, in import_models
self.models_module = import_module(models_module_name)
File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Users\I812624\dev\mrp\src\item\models.py", line 13, in <module>
from product.models import Product
File "C:\Users\I812624\dev\mrp\src\product\models.py", line 3, in <module>
from item.models import ItemGroup
ImportError: cannot import name ItemGroup
可能是什么问题?
这是我在 item 中的 ItemGroup 模型
@with_author
class ItemGroup(models.Model):
name = models.CharField(max_length=30)
description = models.TextField(null=True, blank=True)
creation_time = models.DateTimeField(auto_now_add=True)
subcategory = models.ForeignKey(SubCategory, on_delete=models.PROTECT)
keywords = models.CharField(max_length=50,null=True, blank=True)
#hierarchy = TreeForeignKey(Hierarchy, blank=True, null=True, related_name='cat')
def __unicode__(self):
return u'%s %s' % ( self.id, self.name)
【问题讨论】:
-
看起来问题是由于循环导入。你能用 item/models.py 更新帖子吗?想知道为什么要在里面导入Product模型。