0

我正在尝试将 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"
4

1 回答 1

2

您要么必须首先实现您的物化模型,要么在您的商店实现中导入默认模型。请参阅此链接:http ://django-shop.readthedocs.io/en/latest/reference/deferred-models.html

编辑:默认模型位于 shop/models/defaults 目录中。您可以将它们导入到您的商店实现中,也可以复制它们并修改它们以满足您的项目需求。

shop/models/defaults/__init__.py 说:

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

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

于 2016-12-06T14:51:48.300 回答