Estoy haciendo uso de django-registration y django-profile para manejar el registro y los perfiles. Me gustaría crear un perfil para el usuario en el momento del registro. He creado un formulario de registro personalizada, y ha añadido que a la urls.py usando el tutorial en:Django-Registration & Django-Profile, usando su propio formulario personalizado
La idea básica en el tutorial es para anular el formulario de registro por defecto para crear el perfil al mismo hora.
forms.py - En mi perfiles de aplicación se visualiza
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
En urls.py
from profiles.forms import UserRegistrationForm
y
url(r'^register/$',
register,
{'backend': 'registration.backends.default.DefaultBackend', 'form_class' : UserRegistrationForm},
name='registration_register'),
La forma, y puedo entrar en la ciudad, sin embargo, no guarda ni crea la entrada en el DB.
gracias por el comentario. Decidió hacer una redirección para crear un perfil en el momento del registro, de esa manera no tiene un perfil para un usuario no activado. Sin embargo, marcará esta pregunta como respondida. – ismail
Tengo el mismo problema con la nueva versión del registro de djando. Shacker, pero dónde exactamente está: "Copie el método register() de DefaultBackend en él." DefaultBackend ??, ¿dónde está? Gracias – Asinox
Asinox - Debe obtenerlo del código fuente de django-registration. Mire en registro/backends/default/__ init__.py – shacker