Bereits registrierter Benutzername kann im Benutzererstellungsformular registriert werden. Ich mache Django-Anwendung. Ich schrieb in views.pyBereits registrierter Benutzername kann registriert werden
def regist(request):
regist_form = RegisterForm(request.POST or None)
context = {
'regist_form': regist_form,
}
return render(request, 'registration/regist.html', context)
def regist_save(request):
regist_form = RegisterForm(request.POST or None)
if request.method == "POST" and regist_form.is_valid():
regist = regist_form.save(commit=False)
regist.is_staff = True
regist.save()
advertisements = Advertisement.objects.all()
return render(request, 'registration/detail.html', {'advertisements': advertisements})
in regist.html
<form class="form-horizontal" action="/accounts/regist_save/" method="POST">
<div class="form-group-lg">
<label for="id_username">Username</label>
{{ regist_form.username }}
<p class="help-block">{{ regist_form.username.help_text }}</p>
</div>
<div class="form-group-lg">
<label for="id_email">Email</label>
{{ regist_form.email }}
<p class="help-block">{{ regist_form.email.help_text }}</p>
</div>
<div class="form-group-lg">
<label for="id_password">Password</label>
{{ regist_form.password1 }}
<p class="help-block">{{ regist_form.password1.help_text }}</p>
</div>
<div class="form-group-lg">
<label for="id_password">Password(Confirmation)</label>
{{ regist_form.password2 }}
<p class="help-block">{{ regist_form.password2.help_text }}</p>
</div>
<div class="form-group-lg">
<div class="col-xs-offset-2">
<button type="submit" class="btn-lg regist">Register</button>
<input name="next" type="hidden" />
</div>
</div>
{% csrf_token %}
</form>
in forms.py
class RegisterForm(UserCreationForm):
class Meta:
model = User
fields = ('username', 'email','password1','password1',)
def __init__(self, *args, **kwargs):
super(RegisterForm, self).__init__(*args, **kwargs)
self.fields['username'].widget.attrs['class'] = 'form-control'
self.fields['email'].widget.attrs['class'] = 'form-control'
self.fields['password1'].widget.attrs['class'] = 'form-control'
self.fields['password2'].widget.attrs['class'] = 'form-control'
Jetzt in diesem Registrierungsformular, wenn ich bereits Benutzernamen registriert schreiben & E-Mail & Passwort, diese Daten sind nicht registriert, sondern detail.html ist geladen. Ich möchte eine Warnung anzeigen, wenn ich das möchte "Dieser Benutzername ist bereits registriert". Warum ist meine Webseite nicht meine ideale? Warum kann ich bereits registrierten Benutzernamen in meiner Site widerstehen? Wie soll ich das beheben? Ich habe in models.py kein Benutzermodell erstellt.
Können Sie Ihr Modell und Formular posten? Ich schlage vor, E-Mail/Benutzername einzigartig in Modell selbst –