Ich bin nicht sehr fortgeschrittener Benutzer von Django. Ich habe viele verschiedene Methoden online gesehen, aber alle sind für modifizierte Modelle oder zu kompliziert für mich zu verstehen.
Ich verwende UserCreationForm
in meinem MyRegistrationForm
Ich habe Mühe zu verstehen oder finde einen Weg, um zu überprüfen, ob der Benutzername, den der Benutzer eingibt, bereits vergeben ist oder nicht. Also benutze ich das um mich in HTML umzuleiten, wo es sagt, dass der falsche Benutzername oder Passwörter nicht übereinstimmen:
%Vor%Hier ist meine Registrierungsvorlage (falls erforderlich):
%Vor%Aber ich muss eine Art Ausnahme oder SMS so rasieren, bevor der Benutzer umgeleitet wird. Vielleicht, wenn der Benutzer auf "Registrieren" klickt, bekommt er den Fehler / warning, dass der Benutzername bereits vergeben ist. Ist das möglich?
Sie können prüfen, ob das username
mit der clean_username
-Methode existiert und ValidationError :
In diesem Fall können Sie den Fehler im Anmeldeformular anzeigen und müssen nicht auf eine andere Seite umleiten.
Laut @Spacedman wurde ein gültiger Punkt bezüglich der Race-Bedingungen für die Überprüfung der Benutzernamen-Eindeutigkeit auf der Formularlogik gegenüber DB-Levels angegeben, obwohl Ihre Chance, dies zu erhalten, sehr unwahrscheinlich ist, falls Sie dies tun Lesen:
Wie man Race-Condition mit einzigartigen Check-Ins zu vermeiden Django
Wie aus dem OP-Kommentar hervorgeht, kann hier eine weitere Änderung für die Ansichten vorgenommen werden:
%Vor%Hoffe, das hilft.
Tags und Links python django validation username registration