Форум сайта python.su
Здравствуйте уважаемые джанговцы! Есть форма не на основе модели, а производная от forms.Form
class MyForm(forms.Form): width = forms.IntegerField(initial=320, required=True, max_value=1000) height = forms.IntegerField(initial=200, required=True, max_value=1000)
width
Убедитесь, что это значение меньше либо равно 1000.
Отредактировано digi (Фев. 28, 2013 15:50:16)
Офлайн
Офлайн
nnmware, я не спорю, что к каждому полю можно написать свой валидатор, куда вложить сообщение об ошибке с наименованием самого поля. Но ведь сама валидация в моём случае выполняется нормально, там же в определении поля есть парметр max_value. И сообщение об ошибке через шаблон выводится и на русском языке, я только не пойму, как вывести вместо латинуского названия поля его лэйблу. Можно конечно в шаблоне у каждого поля рядом с ним вставить переменную
{{ form.field.errors }}
Офлайн
Если речь о форме, построенной не по модели, тогда label кажется надо прописать полю.
width = forms.IntegerField(initial=320, required=True, max_value=1000, label=u'Ширина')
Отредактировано nnmware (Март 1, 2013 03:41:43)
Офлайн
Может быть попробовать verbose_name?
class MyForm(forms.Form): width = forms.IntegerField(initial=320, required=True, max_value=1000, verbose_name=u'Ширина') height = forms.IntegerField(initial=200, required=True, max_value=1000, verbose_name=u'Высота')
Офлайн
Да, я тоже про verbose_name написал сначала
Но это не модель а форма. Тут- label
Офлайн
А! Точно, прошу прощения, почему-то подумал что это модель.
Офлайн
Про label это вы мне хорошо подсказали, не знал. Обычно делал всё через формы на основе модели, там есть verbose_name, поэтому вопросов не возникает. Добавил в поле label=u'Ширина', но не получается вывести в шаблон. Как вывести лэйблу поля в шаблон?
Пока что получилось сделать через label_tag, в шаблоне выше формы использую такую конструкцию:
{% for field in form %} {% if field.errors %} {{field.label_tag }} {{field.errors}} {% endif %} {% endfor %}
Офлайн