我有一个网络应用,允许用户编辑以前提交的数据。
我目前正在通过手动更新数据来处理PUT请求。
我想使用我的表单来验证输入,但我遇到了其他必填字段的问题。
例如,如果用户更新了日期字段并且我使用我的表单进行了验证,则会出错,因为我缺少其他必填字段,如姓名,位置等,因为表单设计为一次性填写
使用我的表单验证输入的最佳方法是什么,但如果请求是带有模型表单的PUT或POST,则有条件地允许必填字段。
答案 0 :(得分:0)
如果您因缺少字段而导致错误,并且未正确使用模型,请听起来就像您没有将现有实例传递给它一样。
你需要使用这样的模式:
from django.http import HttpResponse
from django.shortcuts import get_object_or_404, render
def my_view(request, obj_id):
my_object = get_object_or_404(MyModel, pk=obj_id)
update_form = MyModelForm(instance=my_object, data=request.PUT or None)
if update_form.is_valid():
return HttpResponse(status=204) # empty success response
else:
return render(...) # render update_form.errors somehow
请务必在您将PUT请求发送到
的网址中包含对象ID