延迟的外键'OrderPayment.order'尚未映射

时间:2016-11-01 09:11:57

标签: python django django-shop

我正在尝试将django-shop与简单的django安装集成,但它会出现以下错误:

django.core.exceptions.ImproperlyConfigured: Deferred foreign key 'OrderPayment.order' has not been mapped


我甚至尝试创建如下文档中所述的OrderPayment模型,但我仍然没有运气。

class OrderPayment(models.Model):
id = models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')
order = models.ForeignKey(on_delete=models.deletion.CASCADE, to=Order, verbose_name='Order')

class Meta():
    verbose_name = "Order Payment"

1 个答案:

答案 0 :(得分:2)

您必须先实施物化模型,或者在商店实施中导入默认模型。请看这个链接:http://django-shop.readthedocs.io/en/latest/reference/deferred-models.html

编辑: 默认模型位于shop / models / defaults目录中。您可以在商店实施中导入它们,也可以复制它们并根据项目需要进行修改。

shop / models / defaults / __ init__.py说:

  

目录默认中的模型已添加为纯粹的便利   并用于演示目的。每当需要使用时   修改后的版本,将其中一个模型复制到项目模型中   目录并根据您的需要采用它。否则只需导入模型   到你自己的models.py文件而不使用它。后者很重要   实现模型。

     

每个模型都在自己的文件中声明。这是为了防止模型   相关字段的验证错误,如果包含此文件的文件   在不使用模型的情况下导入定义。