2010-07-08 3 views
0

Je veux django-registration (version 0.8) pour utiliser mon formulaire personnalisé plutôt que celui par défaut. Cependant, je veux continuer à utiliser la vue django-registration par défaut. À quoi devrait ressembler le reste de la ligne ci-dessous?Django: Comment utiliser une autre classe_form avec django-registration

(r'^accounts/register'...), 

J'ai essayé ceci ci-dessous, mais obtenir une erreur de syntaxe:

(r'^accounts/register/$', 
     'registration.views.register', 
     {'form_class': 'MyRegistrationForm'}, name='registration_register'), 

Et quand j'essaie celui ci-dessous je me register() prend au moins 2 arguments non de mots clés (1 donné)

(r'^accounts/register/$',  
    'registration.views.register',    
    {'form_class':'MyRegistrationForm'}), 

Répondre

2

en regardant la fonction views.register,

def register(request, backend, success_url=None, form_class=None, 
      disallowed_url='registration_disallowed', 
      template_name='registration/registration_form.html', 
      extra_context=None): 

vous pouvez voir que backend est un argument obligatoire. Effectuez les opérations suivantes:

url(r'^accounts/register/$', 
     'registration.views.register', 
     {'form_class': MyRegistrationForm, 
      'backend':'registration.backends.default.DefaultBackend'}, 
     name='registration_register'), 

Notez que vous devez utiliser url(r'^...) si vous souhaitez le nom de votre URL.

+0

Juste besoin de changer à registration.backends.default.DefaultBackend'et cela a fonctionné. Merci beaucoup! – FunLovinCoder

+0

Merci pour les commentaires, j'ai mis à jour ma réponse. – Alasdair

Questions connexes