Найти - Пользователи
Полная версия: порядок вывода элементов в темплате для forms
Начало » Django » порядок вывода элементов в темплате для forms
1
romankrv
Здравствуйте

При работе с формами возник вопрос о том как можно изменить вывод в темплэйт порядка расположения дополнительных элементов при использовании {{ form.as_table }} {{ form.as_p }} {{ form.as_ul }}

например если нужно <lablel></label> вывести после <input> или между <lablel></label> и <input> вставить <br /> итп . По умолчанию {{ form.as_table }} {{ form.as_p }} {{ form.as_ul }}
выводит все одинакого. Т.е. вопрос какие есть способы изменить порядок вывода элементов в темплате?

например код
forms.py:
from django import forms

class FeedForm(forms.Form):
name_feedbacker = forms.CharField(label=u"Иия")
context = forms.CharField(label=u"Текст сообщения", widget=forms.Textarea (
attrs = {'rows':'10','cols':'50',
})
)
views.py
from feedback.forms import FeedForm

def feedback(request):
if request.method == "POST":
form = FeedForm(request.POST)
if form.is_valid():
pass
return HttpResponseRedirect('/commit/')
else:
form = FeedForm()
return render_to_response('form_feedback.html', {
'forms': form,
})
template
<form method="POST" action='/feedback/' >

{{ forms.as_table }}
{{ forms.as_p }}
{{ forms.as_ul }}

{% endblock %}
</form>
если использовать тэг {% for %}
{% for frm in forms %}
<< frm.as_p >>
{% endfor %}
то не выводит опциональные параметры <lablel>

– Что я делаю не так ?

Спасибо
Lolka
Можно, например, обходя for'ом, обращаться непосредственно: <label>{{ form.name_feedbacker.label }}{{ form.name_feedbacker }}</label> если уж совсем никак не подходит :)
slav0nic
переопредели as_p на свой метод и выводи как надо
romankrv
slav0nic
переопредели as_p на свой метод и выводи как надо
Да это лучший вариант да и по питоновски
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB