Форум сайта python.su
Здравствуйте
При работе с формами возник вопрос о том как можно изменить вывод в темплэйт порядка расположения дополнительных элементов при использовании {{ 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',
})
)
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,
})
<form method="POST" action='/feedback/' >
{{ forms.as_table }}
{{ forms.as_p }}
{{ forms.as_ul }}
{% endblock %}
</form>
{% for frm in forms %}
<< frm.as_p >>
{% endfor %}
Офлайн
Можно, например, обходя for'ом, обращаться непосредственно: <label>{{ form.name_feedbacker.label }}{{ form.name_feedbacker }}</label> если уж совсем никак не подходит :)
Офлайн
переопредели as_p на свой метод и выводи как надо
Офлайн
slav0nicДа это лучший вариант да и по питоновски
переопредели as_p на свой метод и выводи как надо
Офлайн