Невозможно добавить настраиваемые поля в django-регистрации - PullRequest
1 голос
/ 29 мая 2010

я продлил RegistrationFormUniqueEmail

class CustomRegistrationFormUniqueEmail(RegistrationFormUniqueEmail):
    first_name = forms.CharField(label=_('First name'), max_length=30,required=True)
    last_name = forms.CharField(label=_('Last name'), max_length=30, required=True)
    def save(self, profile_callback=None):
        new_user = super(CustomRegistrationFormUniqueEmail, self).save(profile_callback=profile_callback)
        new_user.first_name = self.cleaned_data['first_name']
        new_user.last_name = self.cleaned_data['last_name']
        return new_user

затем изменил представление

#       form = form_class(data=request.POST, files=request.FILES)
        form = CustomRegistrationFormUniqueEmail(data=request.POST, files=request.FILES)

Но я все еще вижу форму по умолчанию, которая содержит только четыре поля.

Ответы [ 3 ]

3 голосов
/ 29 мая 2010

Мы недавно внедрили такую ​​форму. Вот что мы сделали:

  • Создайте новый backend (просто скопируйте его из бэкэнда по умолчанию для начала)

    registration/
        backends/
            default/
            custom/ # <- your new backend
    

    ...

  • В новых urls.py настроить аргументы бэкэнда

    ...
    { 'backend': 'registration.backends.custom.DefaultBackend' },
    ...
    
  • Создайте forms.py в custom. Настройте эту форму по своему вкусу (поля и проверки)

  • В registration/urls.py указать правильный бэкэнд:

     # from registration.backends.default.urls import *
     from registration.backends.custom.urls import *
    

Это должно сработать. Особенно это работает, потому что:

  • Ваш custom/__init__.py будет иметь класс DefaultBackend с методом get_form_class:

    def get_form_class(self, request):
        """
        Return the default form class used for user registration.
        """
        return RegistrationForm
    
  • И вы тоже импортируете свои RegistrationForm в этот файл:

    from registration.backends.custom.forms import RegistrationForm
    
0 голосов
/ 26 июня 2010

Вы можете попробовать посмотреть здесь Расширение django-регистрации с помощью сигналов и здесь http://dmitko.ru/?p=546

0 голосов
/ 29 мая 2010

Я не уверен, от руки, почему это не работает, но я почти уверен, что вы не должны отредактировать views.py регистрацию django ... вы можете передать свой новый CustomRegistrationFormUniqueEmail в качестве аргумента в urls.py.

...