I extended 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
then changed view
# form = form_class(data=request.POST, files=request.FILES)
form = CustomRegistrationFormUniqueEmail(data=request.POST, files=request.FILES)
But, still I see default form which contains four fields only.
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
我不知道,断手,为什么它不工作,但我敢肯定你不需要编辑Django的注册的views.py
......你可以通过你的新CustomRegistrationFormUniqueEmail
作为一个参数urls.py
。
您可以尝试在此处使用信号扩展django注册,并在此处http://dmitko.ru/?p=546
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.