2017-08-29 2 views
0

J'essaie d'ajouter des champs supplémentaires au formulaire d'inscription allauth (prénom et nom). Je pense la meilleure façon de le faire est de créer une sous-classe de SignupForm de allauth et ajouter mes propres champs (très nouveau pour django alors s'il vous plaît laissez-moi savoir si je vais sur ce mal)Personnalisation de formulaire django allauth

J'ai ajouté

ACCOUNT_SIGNUP_FORM_CLASS = 'accounts.forms.UserCreateForm' 

pour déposer mes paramètres de base

et voici mon accounts.forms.py ...

from django.contrib.auth import get_user_model 
from allauth.account.forms import SignupForm 
from django import forms 


class UserCreateForm(SignupForm): 
    class Meta: 
     fields = ("first_name", "last_name", "email", "username", "password1", "password2") 
     model = get_user_model() 

    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.fields["first_name"].label = '' 
     self.fields["first_name"].widget.attrs["placeholder"] = "First Name" 
     self.fields["last_name"].label = '' 
     self.fields["last_name"].widget.attrs["placeholder"] = "Last Name" 
     self.fields["email"].label = '' 
     self.fields["email"].widget.attrs["placeholder"] = "Email" 
     self.fields["username"].label = '' 
     self.fields["username"].widget.attrs["placeholder"] = "Username" 
     self.fields["password1"].label = '' 
     self.fields["password1"].widget.attrs["placeholder"] = "Password" 
     self.fields["password2"].label = '' 
     self.fields["password2"].widget.attrs["placeholder"] = "Confirm Password" 

pour une raison que je continue à obtenir l'erreur ...

django.core.exceptions.ImproperlyConfigured: Error importing form class accounts.forms: "cannot import name 'SignupForm'" 

Vous ne savez pas pourquoi. Évidemment, il ya un SignupForm dans allauth.account.forms.py, vu ici ... https://github.com/pennersr/django-allauth/blob/master/allauth/account/forms.py

Je ne sais pas ce que je fais mal. Toute aide que vous pouvez donner est très apprécié

Répondre

0

https://stackoverflow.com/a/12308807/3415357

Vous n'avez pas besoin d'hériter allauth.account.forms.SignupForm, vous devez hériter de forms.Form spécifier les champs et écrivez votre fonction d'inscription personnalisée (nom d'utilisateur, email , le mot de passe doit rester intact)