Beibehalten der benutzerdefinierten Anmeldeklasse und Importieren von Allauth-Formularen in dieselbe forms.py-Datei, was zu Importfehlern führt
from django import forms
from allauth.account.forms import (LoginForm, ChangePasswordForm,
ResetPasswordForm, SetPasswordForm, ResetPasswordKeyForm)
from django.contrib.auth import get_user_model
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Div, Submit, HTML, Button, Row, Field
from crispy_forms.bootstrap import AppendedText, PrependedText, FormActions
from django.core.urlresolvers import reverse
class MySignupForm(forms.Form):
class Meta:
model = get_user_model()
fields = ['email', 'first_name', 'last_name']
def __init__(self, *args, **kwargs):
super(MySignupForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.fields["email"].widget.input_type = "email" # ugly hack
self.helper.form_method = "POST"
self.helper.form_action = "account_signup"
self.helper.form_id = "signup_form"
self.helper.form_class = "signup"
self.helper.layout = Layout(
Field('email', placeholder="Enter Email", autofocus=""),
Field('first_name', placeholder="Enter First Name"),
Field('last_name', placeholder="Enter Last Name"),
Field('password1', placeholder="Enter Password"),
Field('password2', placeholder="Re-enter Password"),
Submit('sign_up', 'Sign up', css_class="btn-warning"),
)
def signup(self, request, user):
pass
class MyLoginForm(LoginForm):
remember_me = forms.BooleanField(required=False, initial=False)
def __init__(self, *args, **kwargs):
super(MyLoginForm, self).__init__(*args, **kwargs)
class MyPasswordChangeForm(ChangePasswordForm):
def __init__(self, *args, **kwargs):
super(MyPasswordChangeForm, self).__init__(*args, **kwargs)
Ich habe eine Struktur wie diese in meiner app.forms.py-Datei, in der ich allauth importiere, das in Formulare LoginForm ResetPasswordForm usw. eingebaut ist, und in der gleichen Datei definiere ich eine benutzerdefinierte Anmeldeklasse.
hook für benutzerdefinierte Anmeldeklasse: ACCOUNT_SIGNUP_FORM_CLASS = 'allauth_core.forms.MySignupForm'
Ich denke, ich bin mir nicht sicher warum, aber ich bin mir nicht sicher waru
File "/Users/rmahamuni/.virtualenvs/todo/lib/python2.7/site-packages/allauth/urls.py", Zeile 8, in urlpatterns = [url ('^', include ('allauth.account. urls '))] File "/Users/rmahamuni/.virtualenvs/todo/lib/python2.7/site-packages/django/conf/urlsdri .py ", Zeile 52, in include urlconf_module = import_module (urlconf_module) File" /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlibdri .py ", Zeile 37, in import_moduleimportiere (Name) Datei "/Users/rmahamuni/.virtualenvs/todo/lib/python2.7/site-packages/allauth/account/urls.py", Zeile 4, in von. Ansichten importieren Datei "/Users/rmahamuni/.virtualenvs/todo/lib/python2.7/site-packages/allauth/account/views.py", Zeile 19, aus .forms import (Datei "/ Users / rmahamuni /. virtualenvs / todo / lib / python2.7 / site-packages / allauth / account / forms.py ", Zeile 206, in der Klasse BaseSignupForm (_base_signup_form_class ()): File" /Users/rmahamuni/.virtualenvs/todo/lib/python2 .7 / site-packages / allauth / account / forms.py ", Zeile 188, in _base_signup_form_class '"% s "'% (fc_module, e)) django.core.exceptions.ImproperlyConfigured: Fehler beim Importieren der Formularklasse allauth_core.forms: "Name ChangePasswordForm kann nicht importiert werden"
Wenn ich ein benutzerdefiniertes Anmeldeformular in einer separaten Datei behalte, erhalte ich dieses Problem nicht.
Ich habe versucht, die Aufstellung der installierten Apps zu wechseln
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth_core', <-- app where form is located.
Was fehle ich hier? Kann mich bitte jemand führen? Vielen Dan