Kann jemand bitte im Detail erklären, wie man eine Registrierung und Authentifizierung so einfach wie möglich macht? Ich habe eine Authentifizierung (Login) mit django.contrib.auth
gemacht, aber was ich bekommen möchte, ist eine vollständige Registrierung (social / non) + login. Habe bereits django-allauth
, django-social-auth
, django-social
gesehen, kann aber immer noch nicht ohne viel Hacking arbeiten. Habe gehört, dass django-registration
und django-profiles
es viel einfacher machen können, aber ich kann damit nicht umgehen. Zum Beispiel
braucht einen kleinen Hack zum arbeiten:
%Vor% Das DjangoBook bietet einfache Beispiele für Kontakt- und Suchformulare . Aber ich kann es nicht auf Benutzerregistrierung und Anmeldung erweitern.
Kann also jemand ein Beispiel für die Arbeit Registrierung und Anmeldung geben?
Aktualisieren
Hier ist ein einfaches Beispiel für die Anmeldung. Jetzt kommen django-allauth
oder soziale Auth oder registration2
in Betracht ...
Update2
django-allauth
scheint die beste Lösung für eine einfachere Authentifizierung zu sein. Fügen Sie Apps in den Einstellungen korrekt hinzu, registrieren Sie fb / google / etc-Apps und registrieren Sie sich über admin und verwenden Sie die Template-Vererbung, um das Standard-Seiten-Design zu ändern.
DIESES ist ein sehr gut Tutorial über login & amp; Co. Es erklärt sehr gut, wie man Login durch uns selbst ad überschreiben bestehende Django Login-Seiten.
Hier Übersicht für Registrierung und Login. Weitere Informationen finden Sie unter dem Link.
Zur Registrierung:
Ansichten und URLs
Gehen Sie zum unteren Site-Ordner (wo sich die Datei settings.py befindet) und öffnen Sie ihn die Datei views.py. An der Spitze stellen Sie sicher, dass die folgenden Importe sind inbegriffen. Fügen Sie sie hinzu, wenn nicht:
%Vor%Fügen Sie darunter die folgenden Funktionen hinzu (Sie können sie nach der Login-Funktionen):
%Vor%Öffnen Sie die urls.py-Datei im Site-Ordner (gleicher Ordner wie settings.py). Unter urlpatterns = patterns ('', füge folgendes ein Linien.
%Vor%Vorlagen Wir nehmen an, dass Ihre Website bereits über Vorlagen verfügt Verzeichnis und eine Base.html-Datei mit der Navigationsleiste. Öffne das base.html Datei und fügen Sie im Navigationselement einen Link zum Navigationsmenü hinzu die Login-Seite
%Vor%Falls noch nicht vorhanden, gehen Sie zum Ordner templates und erstellen Sie ein Ordner darin nannte die Registrierung. Erstellen Sie eine Datei namens registration_form.html, speichern Sie es im Ordner templates / registration, dann füllen Sie es mit den folgenden:
%Vor%Erstellen Sie eine Datei namens registration_complete.html, speichern Sie sie in der templates / registration folder, und füllen Sie sie mit den folgenden:
%Vor%
Anmelden:
Ansichten und URLs Öffnen Sie die Datei views.py im unteren Site-Ordner (wo sich die Datei settings.py befindet). Wenn es keinen gibt, dann erzeuge und Speichere es. Fügen Sie am Anfang der Datei den folgenden Import ein: from django.shortcuts import render_to_response Darunter müssen Sie nur Fügen Sie eine Funktion hinzu, die die eingeloggte Seite rendert. Die anderen Funktionen (Login und Logout) befinden sich in der Datei views.py im Django Auth-Ordner.
%Vor%# Optional, wenn Sie ihren Benutzernamen bei der Anmeldung anzeigen möchten, rufen Sie ihren Benutzernamen in der Ansicht auf. Ändern Sie die eingeloggte Funktion zu:
%Vor%Öffnen Sie die Datei urls.py im Site-Ordner (derselbe Ordner wie settings.py). Unterhalb von urlpatterns = patterns ('', fügen Sie die folgenden Zeilen ein.
%Vor%Mit simplesite ist der Name des Ordners, der die Datei views.py enthält Datei, die Sie anrufen. Öffnen Sie die Datei settings.py und unten Code eingeben%. Djangos Standard ist, bei der Anmeldung nach / accounts / profile umzuleiten, was in Ordnung ist Sie haben eine Profilseite an dieser URL. Wenn nicht, müssen Sie Ihre ändern Standardeinstellungen für die Login-Weiterleitungs-URL zu derjenigen, die Ihre URL enthält loggedin.html Seite.
Vorlagen
Wir nehmen an, dass Ihre Site bereits ein Vorlagenverzeichnis und eine base.html Datei mit der Navigationsleiste. Öffnen Sie die Datei base.html und in Das Navigationselement fügt einen Link zum Navigationsmenü zur Anmeldeseite hinzu
%Vor%LOGIN_REDIRECT_URL = '/accounts/loggedin/'
Fügt einen Link zur Abmeldung hinzu<a href="/accounts/login">login</a>
Erzeugt ein Verzeichnis namens Registrierung im Vorlagenordner. Wenn Sie dies durch die tun Befehlszeile, geben Sie mkdir registration ein Erstellen Sie eine Datei namens login.html, Speichern Sie es im Ordner templates / registration, und füllen Sie es mit dem Folgendes:%Vor%
<a href="/accounts/logout">logout</a>
verwendet das Django Forms-Modul zum Erstellen des Formulars. Sie können ein unformatiertes Formular erstellen, indem Sie{{ form.as_table }}
ohne das verwenden HTML-Tabellentags oder jedes Feld wird in Absatztags mit{{ form }}
oder als ungeordnete Liste{{ form.as_p }}
eingefügt. Optional, du Sie können auch Ihre eigene Formularstruktur erstellen und die Formularfeld-Tags verwenden wie folgt:Erstellen Sie eine Datei mit dem Namen loggedin.html und speichern Sie sie in der templates / registration folder, und füllen Sie sie mit den folgenden:
%Vor%Wenn Sie den Benutzernamen anzeigen möchten, würden Sie die Anpassung vornehmen die Ansicht, die im Abschnitt "Ansichten" erläutert wird. Dann ändere die gelogged.html Vorlage nach unten (ändern Sie den Wortlaut, wie Sie es für richtig halten):
%Vor%Erstellen Sie eine Datei namens logged_out.html, speichern Sie sie in der templates / registration folder und füllen Sie sie mit folgendem:
%Vor%
Trix 'Herangehensweise hat für mich funktioniert, aber der Abmelde-Link wurde zur Abmeldung von admin anstatt von logged_out.html umgeleitet.
Um die Weiterleitung zu beheben, fügte ich eine neue Option zu href hinzu:
%Vor%In Vorlagen / Registrierung:
Umbenannt logged_out.html
in loggedout.html
; Der Unterstrich führte dazu, dass er immer noch zur Administrator-Abmeldeseite weitergeleitet wurde.
In views.py:
%Vor%Und schließlich in urls.py:
%Vor%Tags und Links django authentication forms login registration