form是继承ModelForm。之前前端的是通过{{ form.name }}显示出来了。
现在我自己有两个思路:
1、通过UpdateView视图完成,但是UpdateView没用过
2、另写一个方法,先查询数据库的数据再传给forms.py中的values字段使显示时可以直接显示数据库已有数据,但问题是如何能在views.py中修改forms.py中的values配置
求大神讲解
可以用ModelForm的instance来显示数据,更新数据设置data,详情可以看我写的一篇文章
https://blog.csdn.net/Skr_Eric/article/details/99828894
https://www.jb51.net/article/166236.htm
先读取数据,通过instance参数传给 ModelForm对象,再传给模板就可以了。如下示例
def edit_booking(request, nid):
""" Edit meetingroom info through id specified by request """
row_obj = get_object_or_404(Booking, pk=nid)
if request.method == 'GET':
form = BookingModelForm(instance=row_obj)
return render(request, 'edit_booking.html', {"form": form, 'nid': nid, }) # 把数据传给模板
if request.method == "POST":
form = BookingModelForm(data=request.POST, instance=row_obj) # 添加这一句
if form.is_valid():
# 写处理逻辑
else: # 数据校验没通过
messages.add_message(request, messages.ERROR, " validation error info .......")
return render(request, 'edit_booking.html', {'form': form,'nid': nid,} # 数据传给模板
........