как вы оформляете форму уже внутри django - PullRequest
1 голос
/ 08 августа 2011

Я использую django-регистрацию. Я хотел бы обновить AuthenticationForm в 'django.contrib.auth.forms'. В частности, я хотел бы передать диктат 'attrs', чтобы добавить несколько атрибутов. Как мне обновить форму, которая поставляется с django?

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Вы можете использовать представления, которые идут с auth, и переопределить параметр формы своей собственной формой:

django.contrib.auth.views.login(request[, template_name, redirect_field_name, authentication_form])

Подробнее здесь .

1 голос
/ 08 августа 2011

Стандартным способом является создание подкласса AuthenticationForm, изменение атрибутов в конструкторе, передача формы в представление входа в систему и запись новой записи в urls.py.

Это кошмар: для добавления атрибута html к полю необходимо использовать подклассы python, чтобы знать, как именно работает метакласс формы django (self.fields['field'].widget.attrs, а не просто self.field.widget.attrs), чтобы знатьregexes (для urls.py), чтобы узнать, как работает django urls.py (нужно ли поместить строку переопределения до или после include('django.contrib.auth.urls')?) и узнать, откуда импортируются форма авторизации и представление авторизации.

А теперь «коммерческий перерыв»: просто используйте http://pypi.python.org/pypi/django-widget-tweaks для своей задачи;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...