Вернуть содержимое формы Django при ошибке - PullRequest
0 голосов
/ 13 января 2010

All

У меня есть страница шаблона, скажем, x.html

У меня есть 3 текстовых поля: имя (varchar2), возраст (int), школа (varchar2).

Если пользователи вводят значения в форме в x.html (скажем, значения name = "a", age = "2", school = "a") и отправляют его. Мне нужно вернуть те же значения обратно в x .html указывает на ошибку.

У меня вопрос, как вернуть те же значения в x.html.

Спасибо .....

Ответы [ 4 ]

2 голосов
/ 13 января 2010

Django будет записывать отправленные значения обратно, пока вы предоставляете объект формы для обработанного шаблона. Например, на ваш взгляд, что-то вроде:

# handle POST
form = MyForm(request.POST)
if form.is_valid():
    # do something and redirect
else:
    # render the template with the invalid form
    return render_to_response('mytemplate.html', {'form': form})

и в вашем шаблоне что-то вроде:

{{ form.myfield.label_tag }}
{% if form.myfield.errors %} indicate error message/icon here {% endif %}
{{ form.myfield }}

Обратите внимание, что {{ form.myfield }} покажет HTML-виджет для myfield с предыдущими отправленными значениями на основе кода представления выше. И он будет пустым, когда вы отобразите его с пустой формой в ответ на GET (например, form = MyForm()).

2 голосов
/ 13 января 2010

из документов :

Стандартный шаблон для обработки формы в представлении выглядит следующим образом:

def contact(request):
    if request.method == 'POST': # If the form has been submitted...
        form = ContactForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...
            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = ContactForm() # An unbound form

    return render_to_response('contact.html', {
        'form': form,
    })
0 голосов
/ 13 января 2010

Я не уверен, как вы обрабатываете данные вашей формы. Однако, если вы используете API формы, встроенный в Django, он позаботится об этом. Подробнее смотрите в Django Docs for Forms http://docs.djangoproject.com/en/dev/topics/forms/#topics-forms-index

Если вы используете API формы и отправка недействительна, Django предоставляет шаблону связанную копию формы с уже предоставленными пользователем данными. Опять же, вам придется прочитать подробную информацию об API, чтобы узнать, как реализовать его в вашей ситуации.

0 голосов
/ 13 января 2010

Если вы используете формы django, она сама проверит правильность и вернет нужные вам значения. Здесь вы можете прочитать об использовании форм и о том, как они проверяют значения. По сути, когда вы передаете некоторые значения в форму, и они не действительны, вы просто визуализируете сайт снова, но django автоматически заполнит поля. Не беспокойтесь о написании собственных форм, если они вам действительно не нужны. И в вашем примере вы действительно не; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...