2013-07-18 2 views
1

У меня есть форма, как один нижеПоля формы в шаблонах Джанго

class Form(forms.Form): 
    chr1 = forms.CharField(widget=forms.TextInput()) 
    email = forms.EmailField() 
    chr2 = forms.CharField() 

И мой взгляд код, как это

def template(request): 
    form = Form({}) 
    return render(request, 'mytemplate.html', {'form': form}) 

Мой шаблон как этот

{% for field in form.fields %} 
{{ field.label_tag }}: {{ field }} 
{% endfor %} 

I ожидайте, что это выведет набор полей ввода. Но выше фрагмент кода дает выход, как указано ниже

: chr1 
: email 
: chr2 
+0

возможно дубликат [Джанго: form.fields не Перебор полей экземпляра] (http://stackoverflow.com/questions/670711/django- form-fields-not-iterating-through-instance-fields) – CIGuy

ответ

0

Согласно документации here вы должны быть итерация на самой форме объекта не на полях. Поэтому вместо form.fields просто используйте форму.

{% for field in form %} 
    {{ field.label_tag }}: {{ field }} 
{% endfor %} 

Я только что нашел этот дубликат вопрос, а также: django: form.fields not iterating through instance fields

+0

Спасибо. Это работает. Есть ли способ, которым я могу использовать только поля и без формы **, включая шаблон и представление? Когда я попытался передать поле из представления и использовать его непосредственно в шаблоне, я получил '' –

+0

. Мое требование - динамически добавлять поля формы, а не фиксированный набор полей. –

+0

Не уверен, что я понимаю, что вы имеете в виду ... но посмотрели ли вы на FormSets? – CIGuy

Смежные вопросы