I extended RegistrationFormUniqueEmail
class CustomRegistrationFormUniqueEmail(RegistrationFormUniqueEmail):
first_name = forms.CharField(la
We recently implemented such a form. Here's what we've done:
Create a new backend
(just copy it from the default backend to start with)
registration/
backends/
default/
custom/ # <- your new backend
...
In the new urls.py
adjust the backend arguments
...
{ 'backend': 'registration.backends.custom.DefaultBackend' },
...
Create a forms.py
under custom
. Adjust this form to your liking (fields and validations)
In the registration/urls.py
point to the proper backend:
# from registration.backends.default.urls import *
from registration.backends.custom.urls import *
That should work. Particularly this works because:
Your custom/__init__.py
will have a DefaultBackend
class with a get_form_class
method:
def get_form_class(self, request):
"""
Return the default form class used for user registration.
"""
return RegistrationForm
And you import your own RegistrationForm
in that file, too:
from registration.backends.custom.forms import RegistrationForm
I'm not sure, off hand, why it isn't working but I am pretty sure you do not need to edit django-registration's views.py
... you can pass your new CustomRegistrationFormUniqueEmail
as an argument in urls.py
.
You can try to look here Extending django-registration using signals and here http://dmitko.ru/?p=546