首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-oscar RuntimeError:冲突的模型

django-oscar RuntimeError:冲突的模型
EN

Stack Overflow用户
提问于 2016-09-19 21:40:04
回答 1查看 558关注 0票数 2

版本信息: Python 2.7,Django 1.9,Oscar Commerce - Version = (1.3)

我正在尝试按照文档定制目录应用程序中的产品和其他几个型号。

我已经根据文档documentation创建了目录应用程序(到myproject/ forked _apps/ catalogue ),并在models.py中实现了这一点:

代码语言:javascript
复制
from django.db import models
from oscar.apps.catalogue.abstract_models import AbstractProduct

class Product(AbstractProduct):
    is_active = models.BooleanField(default=False)

from oscar.apps.catalogue.models import *

正如文档中所述,我已经在settings.py的INSTALLED_APPS中包含了修改后的catalogue应用程序,作为get_core_apps函数的参数(所以我的本地应用程序将替换Oscar中的原始应用程序)。

代码语言:javascript
复制
INSTALLED_APPS = [
   ...
] + get_core_apps(['forked_apps.catalogue'])

迁移也会从oscar.apps.catalogue复制到我的本地应用程序。当我尝试进行迁移时,我总是收到这个错误:

代码语言:javascript
复制
RuntimeError: Conflicting 'product_product_options' models in application 'catalogue': <class 'oscar.apps.catalogue.models.Product_product_options'> and <class 'forked_apps.catalogue.models.Product_product_options'>.

我试图从我的本地目录应用程序(我之前从Oscar应用程序复制的)中删除所有迁移,然后它就可以工作了,但所有新的迁移都是在Oscar源代码文件夹中创建的,但我需要它们在我的项目中……

我如何克服这个错误?

EN

回答 1

Stack Overflow用户

发布于 2019-01-19 11:04:44

确保在使用Product模型的任何地方都使用以下内容:

代码语言:javascript
复制
from oscar.core.loading import get_model

Product = get_model('catalogue', 'Product')

如果您在代码的某个位置编写一个导入,就像这样:

代码语言:javascript
复制
from oscar.apps.catalogue.models import Product

你将会遇到这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39574665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档