gpt4 book ai didi

python - 在 Django 中,保存到数据库时如何返回现有模型实例

转载 作者:行者123 更新时间:2023-12-01 05:37:20 25 4
gpt4 key购买 nike

如何在将实例保存到数据库之前返回该实例?

下面是与我想要完成的类似的事情:

class Personne(models.Model):
nom = models.CharField(max_length=100, verbose_name="Origem")

def save(self, *args, **kwargs):
found = None
try:
found = Personne.objects.get(nom=self.nom)
super(Personne, self).save(*args, **kwargs)
except AudioFile.DoesNotExist:
return found


def test_personne_is_the_same(self):
p1 = Personne.objects.create(nom="Malcom X")
p2 = Personne.objects.create(nom="Malcom X")
self.assertEqual(p1, p2)

断言给出:p1 != 无

最佳答案

有很多原因会导致您的 save() 方法无法按编写的方式工作。 (首先,不使用 save() 的返回值,因此 returnfound 无效。)

但是没有理由尝试自己重新发明它:摆脱自定义 save() 并仅使用 get_or_create():

def test_personne_is_the_same(self):
p1, _ = Personne.objects.get_or_create(nom="Malcom X")
p2, _ = Personne.objects.get_or_create(nom="Malcom X")
self.assertEqual(p1, p2)

关于python - 在 Django 中,保存到数据库时如何返回现有模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604632/

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