registration_backend/views: fix registration of new users

Extra attributs must not be saved in the user model.
This commit is contained in:
Benjamin Dauvergne 2014-07-11 10:38:37 +02:00
parent aedcb83bce
commit a2c2ade6af
1 changed files with 9 additions and 3 deletions

View File

@ -9,6 +9,7 @@ from django.contrib.sites.models import RequestSite
from django.contrib.sites.models import Site
from django.contrib.auth.models import BaseUserManager, Group
from django.conf import settings
from django.db.models import FieldDoesNotExist
from registration.views import RegistrationView as BaseRegistrationView
@ -32,10 +33,15 @@ class RegistrationView(BaseRegistrationView):
else:
site = RequestSite(request)
user_fields = {}
# keep non password fields
for field in compat.get_registration_fields():
if not field.startswith('password'):
user_fields[field] = cleaned_data[field]
# save User model fields
try:
User._meta.get_field(field)
except FieldDoesNotExist:
continue
if field.startswith('password'):
continue
user_fields[field] = cleaned_data[field]
if field == 'email':
user_fields[field] = BaseUserManager.normalize_email(user_fields[field])
new_user = User(is_active=False, **user_fields)