Джанго: построить форму без проверки полей? - PullRequest
1 голос
/ 27 июля 2010

У меня есть форма 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 Ответ

3 голосов
/ 27 июля 2010

Проверка никогда не запускается, пока вы не наберете 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()

Удачного кодирования.

...