RuntimeError: Конфликтующие модели 'product_product_options' в приложении 'каталог': на Оскаре 2 - PullRequest
0 голосов
/ 06 октября 2019

Я использую Django == 2.2.6 и django-oscar == 2.0.2. Попытка настроить модели Оскара, но все они не работают ...

Ошибка ..

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'>. 

После этого ....

  • Создано приложение с именем "catalog"

  • Добавлено как приложение Django для INSTALLED_APPS

  • Добавлены models.py и admin.py

В приложении каталога models.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 голосов
/ 15 октября 2019

Ваш 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...