2017-03-24 7 views
0

Der Stromfluss für Besucher mit django-allauth ist, wenn der Besucher in einer Form füllt, wenn sie nicht bereits authentifiziert sind sie ein Login modal mit der Möglichkeit, Facebook Login oder Standard-Anmeldungen gezeigt Form, mit der ursprünglichen Datenform in ACCOUNT_SIGNUP_FORM_CLASS=SignupFormdjango-allauth: Einreichung Form nach Sozial Login

class SignupForm(forms.Form): 

    def signup(self, request, user): 
     new_user = Profile() 
     new_user.user = user 
     new_user.save() 

     # if form data provided with signup save it. 
     model = self.cleaned_data['model'] 
     if model: 
      # save the form 

fein das funktioniert gespeichert wird, wenn sich der Benutzer mit dem Standard-Anmeldeformular, aber wenn sie soziale Facebook-Account die Werte aus dem Formular nun leere Strings sind mit Anmeldungen, dh self.cleaned_data['model']. Ich nehme an, dass das ursprüngliche Anfrageobjekt veraltet ist, damit die Postdaten verloren gehen? Es scheint auch nicht so zu sein, die Formulardaten an Facebook zu übergeben und sie z.B.

<a title="{{provider.name}}" href="{% provider_login_url provider.id modal="1" process="login" next=request.path scope=scope auth_params=auth_params %}"

ist der einzige Weg zu tun, was ich will, ist die Formulardaten mit lokalen Speichern oder die Datenbank speichern es dann irgendwie den Besucher zuweisen wieder einmal registriert und speichern?

Antwort

0

Was habe ich weg mit ist die Facebook-Anmelde Schaltfläche Ändern auf eine Zwischenansicht zu verknüpfen, wo ich die Formulardaten als Sitzungsdaten zu speichern und dann zurück zur allauth Facebook Login URL umleiten.

ich dann die Formulardaten aus der Sitzung in den Anmeldeverfahren extrahieren, nachdem der Benutzer mit Facebook authentifiziert hat.

Verwandte Themen