我正在使用Django == 2.2.6和django-oscar == 2.0.2。 试图自定义Oscar模型,但每种模型都不起作用...
错误是..
File "/home/dipto/env/oscar/lib/python3.6/site-packages/django/db/models/base.py", line 316, in __new__
new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
File "/home/dipto/env/oscar/lib/python3.6/site-packages/django/apps/registry.py", line 229, in register_model
(model_name, app_label, app_models[model_name], model))
RuntimeError: Conflicting 'product_product_options' models in application 'catalogue': <class 'oscar.apps.catalogue.models.Product_product_options'> and <class 'catalogue.models.Product_product_options'>.
之后....
创建了一个名为“ catalogue”的应用
将其作为Django应用添加到INSTALLED_APPS
添加了models.py和admin.py
在目录应用模型中。py
from django.db import models
from oscar.apps.catalogue.abstract_models import AbstractProduct
class Product(AbstractProduct):
Test_URL = models.URLField()
from oscar.apps.catalogue.models import *
在目录应用程序 init .py
中default_app_config = 'catalogue.apps.CatalogueConfig'
在目录应用apps.py中
from django.apps import AppConfig
class CatalogueConfig(AppConfig):
name = 'catalogue'
label= 'shop mane'
答案 0 :(得分:0)
您的 CatalogueConfig 来自django.apps.AppConfig
。您应该从oscar的目录应用程序中提取它
import oscar.apps.catalogue.apps as apps
class CatalogueConfig(apps.CatalogueConfig):
name = 'catalogue'
label= 'catalogue' # this label must be this
verbose_name = 'Catalogue'
顺便说一句。您无需手动执行此操作,这里有一个名为oscar_fork_app的管理命令。