Форум сайта python.su
Немного не пойму концепцию в темплейтах…
Я думал, что в темплейтах доступны все атрибуты объекта, а оказалось, что нет.
Возьмем объект forms:
Из контриба берем:
class UserCreationForm(forms.ModelForm):
"""
A form that creates a user, with no privileges, from the given username and password.
"""
username = forms.RegexField(label=_("Username"), max_length=30, regex=r'^\w+$',
help_text = _("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."),
error_message = _("This value must contain only letters, numbers and underscores."))
password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
password2 = forms.CharField(label=_("Password confirmation"), widget=forms.PasswordInput,
help_text = _("Enter the same password as above, for verification."))
....................
<p>
{{ form.username.errors }}
<label for="id_username">{% trans "Имя пользователя" %}<span class="blue">*</span> :</label><br />
{{ form.username }}
<span>{{ form.username.help_text }}</span>
</p>
Офлайн
vaxXxaШаблоны тут не причем, просто в вашем примере у form.username действительно нет атрибута error_messages. Посмотрите под отладчиком.
Ну, почему, как и что с доступом в темлейте к атрибутам объекта?
Офлайн
Daevaorn, дейстительно нету.. но я тогда вообще не понимаю… создаю экземпляр класса, что в первом посте:
form = UserCreationForm()
print(form.username)
Офлайн
Именно атрибута username у объекта формы тоже нет. Вы же знаете что запись form.username в шаблоне это не всегда доступ к атрибуту, но также и к ключу словаря. Так вот, у формы доступ к полям осуществляется через form. Но и поле там не то, которое вы определили в описании коласа. Там некий промежуточный объект, так называемый BoundedField. И у него есть help_text, но нет error_messages.
Офлайн
Daevaorn, спасибо. Немного понял, но моск еще сопротивляется - как-то сложно намудрили разработчики.
Офлайн