gpt4 book ai didi

python - 在 Django 模型中正确定义此数据关系

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:31 25 4
gpt4 key购买 nike

我正在开发一个 Django 项目,其中我有两个具有关系的模型。

第一个模型概括地描述了一道菜。它有一个名字和一些其他的基本信息,例如:

dish(models.Model):
name = models.CharField(max_length=100)
short_desc = models.CharField(max_lenght=255)
vegetarian = models.BooleanField(default=False)
vegan = models.BooleanField(default=False)

第二个模型与菜肴相关,我假设是一对一的关系。该模型包含制剂和成分。该数据可能会随着菜肴的时间而改变(例如调整准备文本)。此文本的旧版本仍在存储中,但未连接到盘子。所以这道菜获得了一个新的字段,它指向当前的准备文本。

    preparation = models.???(???)

因此,每当准备描述发生变化时,都会为准备创建一个新条目,并且菜肴对准备的引用也会更新。

准备本身看起来像这样:

preparation(models.Model):
prep_test = models.TextField()
ingredients = models.TextField()
last_update = models.DateTimeField()

如前所述,我认为菜肴准备之间的一对一关系是合理的。

我对一对一关系的假设是否正确?如果正确,我该如何正确定义它?

最佳答案

如果您对这道菜有多种准备,那么根据定义,您就没有一对一的关系。

定义这个的方法是从 Preparation 到 Dish 的 ForeignKey。 (注意,Python 风格是类以大写字母开头。)

class Preparation(models.Model):
...
dish = models.ForeignKey('Dish')

现在您可以执行 my_dish.preparation_set.latest('last_update') 来获取菜肴的最新准备工作。如果您将内部元类添加到 Preparation 并定义 get_latest_by = 'last_update'),则可以省略 latest() 调用的参数。

关于python - 在 Django 模型中正确定义此数据关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com