gpt4 book ai didi

python - django 仅在满足特定条件时才将数据保存在数据库中

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:42 28 4
gpt4 key购买 nike

我有一个 python 函数,可以从几个不同的网站抓取一些数据,我想仅在满足特定条件时将该数据保存到我的数据库中。即,仅当位置和日期字段的组合是唯一的时才应保存抓取的数据

所以在我看来,我有一个新的位置变量和日期变量,基本上我只需要根据数据库中已有的值来测试这个值组合。如果此组合是唯一的,则保存它。如果不是,则什么也不做。

class Speech(models.Model):
location = models.ForeignKey(Location)
speaker = models.CharField(max_lenth=100)
date = models.DateField

我是 django 的新手,所以我不确定如何执行这种数据库查询。

最佳答案

你想要两件事的结合。首先,您需要一个内部 Meta 类来强制数据库中的唯一性:

class Speech(models.Model):
location = models.ForeignKey(Location)
speaker = models.CharField(max_length=100)
date = models.DateField()

class Meta:
unique_together = ('location', 'date')

然后,当您在 View 中进行数据操作时,您需要默认模型管理器的 get_or_create 方法:

speech, new = Speech.objects.get_or_create(
location=my_location_string,
date=my_datetime_variable,
)

if new:
speech.speaker = my_speaker_string
speech.save()

我希望这能让你开始。一如既往,您比我更了解您的需求,所以不要盲目复制这个示例,而是根据您的需求进行调整。

文档:

关于python - django 仅在满足特定条件时才将数据保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534047/

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