我正在尝试运行一个简单的更新表单,该更新表单应更新从该表单提交的数据库中的所有对象值。
这是我的更新视图,除了重定向到“ /”之外,什么也没有做。没有错误,也没有更新。
def update(request, business_id):
if request.method == 'POST':
form = BusinessForm(request.POST)
if form.is_valid():
t = Business.objects.get(id=business_id)
t.save()
return HttpResponseRedirect("/")
else:
...
您没有更新任何字段,而是form.cleaned_data
用于获取表单字段值:
一旦is_valid()返回True,成功验证的表单数据将位于form.cleaned_data字典中。这些数据将为您很好地转换为Python类型。
if form.is_valid():
t = Business.objects.get(id=business_id)
t.my_field = form.cleaned_data['my_field']
t.save()
另外,考虑使用基于UpdateView
类的通用视图而不是基于函数的视图:
一个视图,该视图显示用于编辑现有对象的表单,重新显示带有验证错误的表单(如果有)并保存对对象的更改。这将使用从对象的模型类自动生成的表单(除非手动指定了表单类)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句