Es hängt ein bisschen davon ab, was Sie mit Ajax meinen. Wenn Sie nur ein Popup-ähnliches Anmelde-/Anmeldefenster auf jeder Seite haben möchten, können Sie das Formular einfach zu Ihrer Basisvorlage hinzufügen und es dynamisch mit Javascript in einem Popup-Feld anzeigen. Wenn Sie die Form Aktion URL auf die ursprünglichen allauth
URLs halten, dann wird dies bereits das Gefühl einer Ajax-Anmeldung geben. Sie können auch Dinge zwicken, indem Sie $.ajax
oder $.post
verwenden, um die ursprünglichen Ansichten allauth
anzuzeigen.
Etwas wie das oben genannte ist getan auf http://officecheese.com/ - dies ist eine allauth
basierte Website, obwohl ich nicht damit verbunden bin.
Wenn Sie mit Ajax meinen, dass alle authentifizierungsbezogenen Ansichten über Ajax angezeigt werden sollen, ohne dass ein neues Dokument neu geladen wird, dann habe ich Angst, dass Sie ein wenig Pech haben. Dies ist einfach problematisch für Szenarios, bei denen E-Mail-Verifizierung oder OAuth-Handshakes ausgeführt werden, da Sie hier normalerweise zu einer neuen URL aus Ihrem Postfach navigieren oder zu Twitter weiterleiten usw.
Hallo @pennersr, großartig, um Ihre Antwort zu haben. Ich würde gerne ein Formular in Dropdown implementieren, das dem ähnlich ist, was officecheese.com macht. aber wenn es einen Fehler gibt, sagen wir "ungültiger Benutzername oder Passwort" oder "Benutzername existiert bereits". Ich möchte diesen Fehler direkt vor dem Navigieren bekommen. Also, was mein Plan ist, senden Sie das Formular über '$ .post' und json Antwort für Login und Anmeldung. Vielen Dank, dass Sie mir dabei geholfen haben. – san
Sie können die Antwort auf Ihren '$ .post/ajax'-Aufruf überprüfen, das Formular html (das die Überprüfungsfehler enthält) extrahieren und das ursprüngliche Formular ersetzen. Etwas wie: '$ (" ... oldForm ... ")). ReplaceWith ($ (ajaxresponse) .find (" form "))'. Wenn Sie feststellen, dass die Anmeldung erfolgreich war, kann die URL-Weiterleitung etwas unordentlich werden. Sie müssten feststellen, dass Sie in der Login-Weiterleitungs-URL landen. Das Überschreiben der Ansichten zum Zurückgeben strukturierter JSON-Daten ist jedoch sauberer. Aber warum sollte man sich die Mühe machen, dies zu ajaxifizieren - Websites wie Twitter tun dies auch nicht. – pennersr
@pennersrs gibt es neben der hardcodierung der ID in die Basisvorlagen oder der Verwendung von klassenbasierten Ansichten auch die Möglichkeit, das Formular in alle meine funktionsbasierten Ansichten einzubinden, ohne dieses zu jeder Ansicht hinzufügen zu müssen? – wasabigeek