Ich versuche, .signup()
in einem Formular überschreiben, die von SignupForm
erbt, aber es scheint nicht zu funktionieren. Mein Hauptziel ist es, eine Instanz des UserProfile
Modells gleichzeitig mit dem Speichern des User
Modells zu speichern.Wie überschreiben .signup() auf Django-Allauth Formular
Hier ist der Code, die ich bisher habe:
class MySignupForm(SignupForm):
""" This form only used for django-allauth package (called in Settings.py) """
first_name = forms.CharField(max_length=30, widget=forms.TextInput(attrs={'placeholder': 'First name'}))
last_name = forms.CharField(max_length=30, widget=forms.TextInput(attrs={'placeholder': 'Last name'}))
dob = forms.CharField(widget=forms.TextInput(attrs={'type': 'date', 'min': '1940-01-01', 'max': '2030-01-01'})) # HTML5 Widget... works?
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
login_url = reverse_lazy('account_login')
self.helper = FormHelper()
self.helper.layout = Layout(
Div('first_name', css_class='col-md-6'),
Div('last_name', css_class='col-md-6'),
Div('dob', css_class='col-md-12', style='clear: both'),
Div('username', css_class='col-md-12', style='clear: both'),
Div('email', css_class='col-md-12'),
Div('password1', css_class='col-md-12', style='clear: both'),
Div('password2', css_class='col-md-12'),
HTML('<div class="col-md-12"><br></div>'),
FormActions(
Submit('submit', 'Register', css_class='btn btn-primary', style='display:block;clear:both;margin: 0 0 15px 15px;float:left'),
HTML('<a href="{0}" class="btn btn-default" style="margin: 0 15px 15px 0;float:right;display:inline">Sign In</a>'.format(login_url))
)
)
def signup(self, request, user):
print(form.cleaned_data['dob'])
return user
Wie Sie sehen können, ich versuche zu print()
die dob
, aber wenn ich versuche, die Anmeldung, erscheint nichts in meinem Terminal up! Jede Hilfe wäre willkommen.
Ich habe eigentlich, dass bereits zu schaffen - Die benutzerdefinierten Felder werden in meinem Registrierungsformular angezeigt, aber die Anweisung 'print()' druckt nicht, was bedeutet, dass sie bei der Anmeldung nicht ausgeführt wird. – Hybrid
@Hybrid ich bin mir nicht sicher, ob du das schon probiert hast, aber du kannst post_save signalisieren. Sehen Sie meine Bearbeitung oben – doniyor
gibt es auch 'pre_social_login' Signal. -> 'von allauth.socialaccount.signals Import pre_social_login' – doniyor