使用Django 1.11和Python 3.4
我有一个模特:
class ToDo(models.Model):
completed = models.BooleanField(default=False)
我希望用户能够通过单击复选框为模型更新此字段,因此我按如下方式创建了ModelForm:
class CompletedForm(ModelForm):
class Meta:
model = ToDo
fields = ['completed']
我遇到的问题是了解如何在用户单击复选框时让数据库更新,以便完成的字段将在True或False之间切换。在views.py中:
if request.method == 'POST':
for x in range(0, all_todos.count()):
a = all_todos[x]
completedform = CompletedForm(request.POST, instance=a)
else:
for x in range(0, all_todos.count()):
a = all_todos[x]
print(a)
completedform = CompletedForm(instance=a)
我在GET或POST方法的情况下呈现了复选框,并将每个框链接到特定实例。我假设大多数逻辑都将在POST方法中进行,因为这会对数据库进行更改。
谢谢
答案 0 :(得分:0)
如果在ToDo
数据中有if request.method == 'POST':
ids = request.POST.get('todo') # we should get all id from ToDo, should be int
ToDo.objects.filter(pk__in=ids).update(completed=True)
个ID列表,那么就有更简单的方式来更新所有数据。
http.get