一次更新多个Django ID

时间:2018-07-06 14:47:56

标签: django

我有一个django html页面,其中共有3条记录(id,P_350,P_450),并且我想一次单击“提交”按钮进行更新。

当我一次更新一次,但我想更新多个记录时,它工作正常,因此我在前面添加了一个循环“ for id in ids:”以访问多个id;但以某种方式我无法使其正常工作。

我的问题是:

  • 我是否还应该对其他P_350和P_450使用getlist方法
  • 我通过循环id做正确的事吗?否则我该怎么做?

这是我的view.py文件:

foo

这是我的html文件输入部分:

from foo import x, main
print(x) # should print 0
main()
print(x) # should print 1

1 个答案:

答案 0 :(得分:3)

使用__in一次查询所有项目,而不是遍历ID

ids = request.POST.getlist("id")
qs = fp.objects.filter(id__in=ids)

您可以使用查询集的.update method一次更新查询集中的所有项目。

P_350 = request.POST["P_350"]
P_450 = request.POST["P_450"]

updates = {}
if len(P_350) > 1:
    updates['P_350'] = P_350
if len(P_450) > 1:
    updates['P_450'] = P_450

if updates:
    qs.update(**updates)