我有以下型号:
class Book(models.Model):
title = models.CharField(max_length=100)
quantity = models.IntegerField()
in_stock = models.BooleanField()
我有一个表单,可以让我更新多个选定书籍的数量和库存:
Quantity:
In Stock:
List of Books:
1. Eat Pray and Love
2. Twilight
在我的观看中,我可以更新图书的查询列表,如下所示:
quantity = form.cleaned_data['quantity']
in_stock = form.cleaned_data['in_stock']
if quantity:
selected_books.update(quantity=quantity)
if in_stock:
selected_books.update(in_stock=in_stock)
我基本上只在输入字段时进行批量更新。以上需要2个单独的sql update语句。有没有办法调用使用单个sql语句而不管输入的字段数是多少?
答案 0 :(得分:4)
建立一个字典,然后立即用kwarg扩展来做。
d = {}
if quantity:
d['quantity'] = quantity
...
selected_books.update(**d)