Django:构建表单而不验证字段?

时间:2010-07-27 12:45:04

标签: python django validation forms django-forms

我有一个表单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

1 个答案:

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

快乐编码。