"Django Oscar扩展过程中的模型名称冲突?"

2024-05-16 16:10:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试扩展一个奥斯卡应用程序,所以我把它分了出来。现在跟随this example一行又一行尝试向ProductImage模型类添加字段。在

from oscar.apps.catalogue.abstract_models import AbstractProductImage    
class ProductImage(AbstractProductImage):
        thumbnail = models.ImageField(upload_to='images/thumbnails/')
from oscar.apps.catalogue.models import * 

runserver上,我得到了错误

^{pr2}$

我知道如果我将类ProductImage的名称更改为其他名称,这将起作用,但是为什么在示例中它们使用相同的名称呢?另外,在将来,假设我想分叉任何应用程序,我只想将字段添加到现有类中,而不是添加到新类中。我有什么遗漏吗?在


Tags: appsfrom模型import名称abstract应用程序models
2条回答

如果我没有从oscar.apps.catalogue.models导入任何内容,那么这些模型就没有注册,因此我不会看到冲突。我从中导入了一个模型(问题中没有显示),因此我产生了冲突。在

请确保在用您自己的重写替换INSTALLED_APPS列表中删除{}。特别是如果您调用^{},请确保在提供给函数的列表中包含forked_apps.catalogue。在

否则,Django可能会在加载覆盖之前加载Oscar的模型,从而导致重复(和错误)。在

相关问题 更多 >