Валидация форм 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)
Вернуться на верх