Валидация форм Django с помощью Bootstrap 5
Я хочу создать форму входа на django с помощью bootstrap 5. Как я могу убедиться, что форма валидна? Могу ли я стилизовать повышение validationError с помощью bootstrap в шаблоне?
Вот мой код:
forms.py
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField()
def clean(self):
username = self.cleaned_data.get("username")
password = self.cleaned_data.get("password")
# Check if user and password is matching and exists
user = authenticate(username=username, password=password)
if not user:
raise forms.ValidationError("This is an invalid user.")
login_page.html
<form method="POST" class="row g-3 needs-validation" novalidate>
{% csrf_token %}
<input type="text" name="username" class="form-control" placeholder="Username" required>
<div class="invalid-feedback">{{ #raise ValidationError here }}</div>
<input type="password" name="password" class="form-control" placeholder="Password" required>
<div class="invalid-feedback">{{ #raise ValidationError here }}</div>
<input class="btn btn-primary" type="submit" value="Login">
Могу ли я это сделать? Или есть лучшее решение для создания валидации формы входа? Спасибо.
вы можете передать валидацию здесь, как это сделано в вашем forms.py
forms.py
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
def clean(self, *args, **kwargs):
username = self.cleaned_data.get("username")
password = self.cleaned_data.get("password")
if username and password:
user = authenticate(username=username, password=password)
if not user:
raise forms.ValidationError("This user doesn't exist")
if not user.check_password(password):
raise forms.ValidationError("Incorrect Password")
if not user.is_active:
raise forms.ValidationError("User no longer Active")
return super(LoginForm,self).clean(*args,**kwargs)