我有一个表单MyForm
,我会在用户填写时使用ajax更新。我有一个查看方法,通过从MyForm
构建request.POST
并将其反馈来更新表单。
def update_form(request):
if request.method == 'POST':
dict = {}
dict['form'] = MyForm(request.POST).as_p()
return HttpResponse(json.dumps(dict), mimetype='application/javascript')
return HttpResponseBadRequest()
但是,这会调用清理/验证例程,我不想在用户实际主动点击“提交”之前向用户显示错误消息。
所以问题是:如何在不调用验证的情况下从现有数据构造django.forms.Form
?
答案 0 :(得分:3)
在您致电form.is_valid()
之前,验证永远不会发出。
但正如我猜测,您希望您的表单中填入数据用户类型,直到用户点击提交。
def update_form(request):
if request.method == 'POST':
if not request.POST.get('submit'):
dict = {}
dict['form'] = MyForm(initial = dict(request.POST.items())).as_p()
return HttpResponse(json.dumps(dict), mimetype='application/javascript')
else:
form = MyForm(request.POST)
if form.is_valid():
# Your Final Stuff
pass
return HttpResponseBadRequest()
快乐编码。