版本信息: Python 2.7,Django 1.9,Oscar Commerce - Version = (1.3)
我正在尝试按照文档定制目录应用程序中的产品和其他几个型号。
我已经根据文档documentation创建了目录应用程序(到myproject/ forked _apps/ catalogue ),并在models.py中实现了这一点:
from django.db import models
from oscar.apps.catalogue.abstract_models import AbstractProduct
class Product(AbstractProduct):
is_active = models.BooleanField(default=False)
from oscar.apps.catalogue.models import *正如文档中所述,我已经在settings.py的INSTALLED_APPS中包含了修改后的catalogue应用程序,作为get_core_apps函数的参数(所以我的本地应用程序将替换Oscar中的原始应用程序)。
INSTALLED_APPS = [
...
] + get_core_apps(['forked_apps.catalogue'])迁移也会从oscar.apps.catalogue复制到我的本地应用程序。当我尝试进行迁移时,我总是收到这个错误:
RuntimeError: Conflicting 'product_product_options' models in application 'catalogue': <class 'oscar.apps.catalogue.models.Product_product_options'> and <class 'forked_apps.catalogue.models.Product_product_options'>.我试图从我的本地目录应用程序(我之前从Oscar应用程序复制的)中删除所有迁移,然后它就可以工作了,但所有新的迁移都是在Oscar源代码文件夹中创建的,但我需要它们在我的项目中……
我如何克服这个错误?
发布于 2019-01-19 11:04:44
确保在使用Product模型的任何地方都使用以下内容:
from oscar.core.loading import get_model
Product = get_model('catalogue', 'Product')如果您在代码的某个位置编写一个导入,就像这样:
from oscar.apps.catalogue.models import Product你将会遇到这个问题。
https://stackoverflow.com/questions/39574665
复制相似问题