【发布时间】:2022-01-25 12:46:40
【问题描述】:
我是 django 新手,当我想定义两个相互具有外键的模型时遇到了以下错误。我搜索了一下,发现当模型在两个不同的应用程序中时可能会发生这种情况,但我的模型在一个应用程序中。你能帮我解决这个问题吗? 谢谢
错误: ?[31;1mstore.Collection.featured_product: (fields.E300) 字段定义了与模型“产品”的关系,该模型要么未安装,要么是抽象的。?[0m
class Collection(models.Model):
title = models.CharField(max_length=255)
featured_product = models.ForeignKey(
'Product', on_delete=models.SET_NULL, null = True, related_name= '+')
class Product(models.Model):
title = models.CharField(max_length=255)
description = models.TextField()
price = models.DecimalField(max_digits=6, decimal_places=2)
inventory = models.IntegerField()
last_update = models.DateTimeField(auto_now=True)
collection = models.ForeignKey(Collection, on_delete=models.PROTECT)
promotion = models.ManyToManyField(Promotion)
【问题讨论】:
-
我遇到了这个错误(fields.E300)字段定义了与模型“产品”的关系,该模型要么未安装,要么是抽象的
-
为什么不将其更改为多对多,因为两者都是彼此的外键
-
@HusamAlhwadi 好吧,我现在通过了课程,我完全按照老师的做法做了,但是我的代码遇到了错误。
标签: python django django-models