J'utilise django-registration et django-profile pour gérer les inscriptions et les profils. Je voudrais créer un profil pour l'utilisateur au moment de l'enregistrement. J'ai créé un formulaire d'enregistrement personnalisé, et je l'ai ajouté à urls.py en utilisant le tutoriel sur :
L'idée de base du tutoriel est de remplacer le formulaire d'inscription par défaut pour créer le profil en même temps.
forms.py - Dans mon application de profils
from django import forms
from registration.forms import RegistrationForm
from django.utils.translation import ugettext_lazy as _
from profiles.models import UserProfile
from registration.models import RegistrationProfile
attrs_dict = { 'class': 'required' }
class UserRegistrationForm(RegistrationForm):
city = forms.CharField(widget=forms.TextInput(attrs=attrs_dict))
def save(self, profile_callback=None):
new_user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'],
password=self.cleaned_data['password1'],
email=self.cleaned_data['email'])
new_profile = UserProfile(user=new_user, city=self.cleaned_data['city'])
new_profile.save()
return new_user
Dans urls.py
from profiles.forms import UserRegistrationForm
et
url(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend', 'form_class' : UserRegistrationForm},
name='registration_register'),
Le formulaire s'affiche, et je peux saisir la ville, mais il n'enregistre pas ou ne crée pas l'entrée dans la base de données.