gpt4 book ai didi

python - 扩展 Django Oscar 时模特名称冲突?

转载 作者:行者123 更新时间:2023-12-01 04:33:36 24 4
gpt4 key购买 nike

我正在尝试扩展 Oscar 应用程序,因此我 fork 了它。现在关注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 上我收到错误

RuntimeError: Conflicting 'productimage' models in application 
'catalogue': <class 'oscar.apps.catalogue.models.ProductImage'>
and <class 'forked_apps.catalogue.models.ProductImage'>.

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

最佳答案

当您用自己的覆盖替换时,请确保从 INSTALLED_APPS 列表中删除 oscar.apps.catalogue。特别是如果您调用get_core_apps() ,请确保在提供给函数的列表中包含 forked_apps.catalogue

如果不这样做,可能会导致 Django 在加载您的覆盖之前加载 Oscar 的模型,这会导致重复(和错误)。

关于python - 扩展 Django Oscar 时模特名称冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com