3

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

那是我的代码 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。初始化.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',

            ])
4

1 回答 1

1

而不是做

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

            ])
于 2015-09-11T18:11:26.743 回答