trying to create allauth SignupForm subclass for customization....

519 views
Skip to first unread message

Alexander Joseph

unread,
Aug 28, 2017, 11:13:31 PM8/28/17
to Django users
Hello, I'm trying to add some additional fields to the allauth signup form (first_name and last_name). I'm thinking the best way to do this is to create a allauth SignupForm subclass and add my own fields (very new to django so please let me know if I'm going about this wrong)

I added

ACCOUNT_SIGNUP_FORM_CLASS = 'accounts.forms.UserCreateForm'

to my base settings file


and here is my 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"



for some reason I keep getting the error ...

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

Not sure why. Obviously there is a SignupForm in allauth.account.forms.py, seen here... 

I dont know what I'm doing wrong. Any help you can give is much appreciated

Melvyn Sopacua

unread,
Aug 31, 2017, 11:44:59 AM8/31/17
to django...@googlegroups.com
The answer lies in the fact that you are getting a Django configuration exception and not an ImportError.



So, there is an import loop / inheritance problem: Allauth's SignupForm makes itself a child of your custom form and you're trying to become it's child.


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/ea79940e-0549-4ffa-802f-e72214d4ebe2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Melvyn Sopacua

Alexander Joseph

unread,
Sep 1, 2017, 12:21:06 PM9/1/17
to django...@googlegroups.com
Thanks Melvyn!

--
You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/z4nArTYetUk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-users+unsubscribe@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

For more options, visit https://groups.google.com/d/optout.



--
Best Regards,

Alexander Joseph

Reply all
Reply to author
Forward
0 new messages