如何在Django中使用更新功能更新数据库表值

时间:2020-07-13 21:28:31

标签: python django

我的数据库表中已有一个条目,我想用值126更新它。但是由于某种原因,更新功能似乎没有任何作用。我不想创建一个新实例,我只想覆盖已经存在的值。 PF是我的数据库表的名称。我知道objects都链接到表模型的pass_numberfail_number属性,因此我假设这两个值都将被更新。但是当我进入表格时,我仍然看到旧值。

event1 = PF(
    pass_number = 12,
    fail_number = 6,
)
event1.objects.update(event1)

我在终端中看到的错误是:

TypeError: update() takes 1 positional argument but 2 were given

2 个答案:

答案 0 :(得分:2)

如果PF是您的型号名称,并且您想更新数据库中的记录。

首先,您必须从数据库中获取需要更新的记录。然后,您可以更新该记录。 要获取单个记录,可以使用get方法,然后更新相关字段并保存单个记录。它将更新您的现有记录。

示例代码以更新数据库中的单个记录

event1 = PF.objects.get(pk=1)
event1.pass_number = 12
event1.fail_number = 6
event1.save()

注意:在这里,请将1替换为数据库中记录的主键。

要更新多个记录,您必须获取所有需要更新的记录。您可以使用filter过滤数据,也可以使用all来获取所有记录。

用于更新数据库中所有记录的示例代码

events = PF.objects.all()
events.update(pass_number = 12, fail_number = 6)

示例代码以更新数据库中的过滤记录

您可以在以下链接上查看带有过滤器和更新的示例。谢谢 https://docs.djangoproject.com/en/3.0/ref/models/querysets/#update

答案 1 :(得分:-1)

您尝试过

event1.objects.all().update(event1)