应用程序中存在冲突的 'order' 个模型 'order'

Conflicting 'order' models in application 'order'

我对 Django oscar 的覆盖模型有疑问。我想为模型添加一个新字段但是当我这样做时我有 RuntimeError: Conflicting 'order' models in application 'order': and .

这就是我的代码 myapp.oscar_apps.order.models.py

from oscar.apps.order.models import *  # noqa
from oscar.apps.order.abstract_models import AbstractOrder  # noqa
from django.db import models

class Order(AbstractOrder):
    hash = models.CharField(max_length=256, blank=True, null=True)


from oscar.apps.order.models import *

*myapp.oscar_apps.order.init.py

default_app_config = 'bakdrop.oscar_apps.order.config.OrderConfig'

*myapp.oscar_apps.order.config.py

from myapp.apps.order import config


class OrderConfig(config.OrderConfig):
    name = 'myapp.oscar_apps.order'

谁能帮我解决这个问题?

更新我的 INSTALLED_APPS

 INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.flatpages',
    'compressor',
    'paypal',
    'crispy_forms',
    'django_select2',
    'myapp.apps.user',
    'myapp.apps.organization',
    'widget_tweaks',
    'djcelery',

] + get_core_apps([
                'myapp.apps.promotions',
                'myapp.oscar_apps.checkout',
                'myapp.oscar_apps.order',
                'myapp.oscar_apps.basket',
                'myapp.oscar_apps.shipping',
                'myapp.oscar_apps.payment',

            ])

而不是

from oscar.apps.order.models import *

我觉得你需要

from myapp.oscar.apps.order.models import *

一个好的调试策略是注释掉所有这些,然后逐行重新引入它们。这样你就可以查明错误:

get_core_apps([
                'myapp.apps.promotions',
                #'myapp.oscar_apps.checkout',
                #'myapp.oscar_apps.order',
                #'myapp.oscar_apps.basket',
                #'myapp.oscar_apps.shipping',
                #'myapp.oscar_apps.payment',

            ])