处理PUT的正确方法是使用表单请求Django

时间:2015-03-23 14:08:20

标签: django forms

我有一个网络应用,允许用户编辑以前提交的数据。

我目前正在通过手动更新数据来处理PUT请求。

我想使用我的表单来验证输入,但我遇到了其他必填字段的问题。

例如,如果用户更新了日期字段并且我使用我的表单进行了验证,则会出错,因为我缺少其他必填字段,如姓名,位置等,因为表单设计为一次性填写

使用我的表单验证输入的最佳方法是什么,但如果请求是带有模型表单的PUT或POST,则有条件地允许必填字段。

1 个答案:

答案 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