RuntimeError:应用程序“目录”中的“ product_product_options”模型发生冲突:在奥斯卡2上

时间:2019-10-06 05:01:48

标签: django-oscar

我正在使用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'

1 个答案:

答案 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的管理命令。

相关问题