应用程序中存在冲突的 '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',
])
我对 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',
])