Dies ist mein Memorandum. Ich habe viel für meine eigene Studie recherchiert, aber da es viele Erklärungen für Version 2 usw. gab, war es kompliziert, daher werde ich es bis zu einem gewissen Grad zusammenfassen. Ich schreibe es in der Hoffnung, dass es für diejenigen von Nutzen ist, die auf ähnliche Probleme gestoßen sind. Bitte mit warmen Augen beobachten! (Bitte zögern Sie nicht, Korrekturen vorzunehmen)
Sie können die meisten Dinge verstehen, indem Sie ein Tutorial durchführen (entsprechend). https://docs.djangoproject.com/ja/3.1/intro/tutorial01/
Nutzungsumgebung
・ Betriebssystem ... Windows10
・ Python ... 3.7.6
・ Django ... 3.1.3
Es tut mir leid, wenn es ein Versehen gibt. Das Paket ist wahrscheinlich
pip install django
pip install pillow
Es hätte nur ... sein sollen! !!
Ich werde hauptsächlich dort schreiben, wo ich von hier aus gestolpert bin.
Ich wollte die Funktion implementieren, also habe ich meine eigene Anmeldefunktion erstellt. Als Fluss
2:
model.py
class User(AbstractUser):
pass
Und gerade AbstractUser geerbt. Im offiziellen Dokument heißt es vorerst, dass Sie Ihre eigenen durch Überschreiben erstellen sollten. Sie können Ihre Lieblingsspalten hinzufügen, indem Sie sie hier bearbeiten. [Siehe Abstract User] https://docs.djangoproject.com/en/3.1/topics/auth/customizing/
3: Ich dachte an die folgenden Optionen als Methode zur Implementierung der Anmelde- und Abmeldefunktionen.
view.py
from django.contrib.auth import authenticate, login
def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
# Redirect to a success page.
...
else:
# Return an 'invalid login' error message.
...
ebenso gut wie
Methode mit Ansicht Referenzquelle: https://docs.djangoproject.com/ja/3.1/topics/auth/default/
Da die Menge an Code bei Verwendung von View reduziert wird, habe ich ihn hier implementiert, aber es scheint, dass die Methode, die intuitiv leicht zu verstehen ist, die Verarbeitungsmethode innerhalb der vorherigen Methode ist. Überprüfen Sie bei Verwendung von Ansicht unbedingt die darin enthaltenen Variablen. Die Ursachen für nutzlosen Code und Fehler sind relativ aufgelistet. Diesmal ist Form die Standardeinstellung, da es verwendet wird, wenn ein Klassenname in HTML angegeben wird. Ich bearbeite nur Vorlagenname und erbe den Rest so wie er ist. Das Abmelden wird auf die gleiche Weise implementiert, sodass es weggelassen wird.
4: Der neue Registrierungsbildschirm stolperte am meisten. Ich werde aus der Schlussfolgerung schreiben.
view.py
def signup(request):
if request.method == 'POST':
form = UserCreateForm(request.POST)
if form.is_valid():
form.save()
else:
print(form.errors)
return redirect('/login')
return render(request, 'loginauth/create_user.html')
def redirect_view(request):
response = redirect('/login')
return response
forms.py
class UserCreateForm(UserCreationForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['username'].widget.attrs['class'] = 'form-control'
self.fields['password1'].widget.attrs['class'] = 'form-control'
self.fields['password2'].widget.attrs['class'] = 'form-control'
self.fields['email'].widget.attrs['class'] = 'form-control'
class Meta:
model = User
fields = ("username", "password1","password2", "email",)
Es ist wie es ist. Ich werde es ergänzen.
Der komplizierteste Teil persönlich
Views.py `form = UserCreateForm (request.POST)`
war.
Um kurz zusammenzufassen, was Sie tun
Es gibt ein Formular zum Erstellen eines Benutzers mit dem Namen UserCreationForm.
Modell festlegen: Benutzer und Felder im Formular.
Extrahieren Sie den Inhalt von views.py, der mit Feldern aus request.POST übereinstimmt, und überprüfen Sie, ob Kennwort1 und 2 mit form.is_valid () übereinstimmen.
Wenn sie übereinstimmen, speichern Sie sie wie sie sind.
Es ist ein Fluss. Referenzquelle: https://docs.djangoproject.com/ja/3.1/topics/auth/default/ https://docs.djangoproject.com/ja/3.1/topics/auth/default/#django.contrib.auth.forms.UserCreationForm Wenn Sie hier herumlesen, können Sie sehen, wie man es schreibt.
Recommended Posts