gpt4 book ai didi

django - 在创建之前检查是否存在唯一值

转载 作者:行者123 更新时间:2023-12-03 23:15:16 24 4
gpt4 key购买 nike

当 Django 在主键属性上运行 .save() 时,它首先执行 SELECT 以查看它是否已经存在,然后决定是执行 INSERT 还是 UPDATE。有没有办法优雅地对唯一但不是主键字段执行相同的操作?

基本上,如果模型如下所示:

class Subject(models.Model):
name = models.CharField(max_length=64, unique=True)

我想在不抛出错误的情况下执行以下操作
>>> s=Subject(name="A new subject")
>>> s.save()
>>> s
<Subject: A subject>
>>> s=Subject(name="A new subject")
>>> s.save()
--- django.db.utils.IntegrityError: column name is not unique

相反,我可以为 pk 命名,但我不确定一种优雅的 Django 方式来制作非 pk 唯一的自动递增 ID。

任何帮助表示赞赏。谢谢!

最佳答案

您可以使用 get_or_create .

s, created = Subject.objects.get_or_create(name="A new subject")

关于django - 在创建之前检查是否存在唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929325/

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