Home > Net >  Django: How to update a class attribute of an invalid form field to display error messages in Bootst
Django: How to update a class attribute of an invalid form field to display error messages in Bootst

Time:01-08

When I use server-side validation in Bootstrap 5, I need to add an .is-invalid class to the input form field with an error to display it in div with . To update a class attribute of a form field in Django I can do this, as stated in the docs:

class CommentForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['name'].widget.attrs.update({'class': 'special'})
        self.fields['comment'].widget.attrs.update(size='40')

But I cannot figure out how to add .is-invalid to the form field when the form is returned invalid. I have found this in the docs, but it doesn't work.

CodePudding user response:

I don't know correct way but this way I've done my job

if form.is_valid():
    form.save()
    return redirect("success")
else:
    for field in form.errors:
        form[field].field.widget.attrs['class']  = ' is-invalid'

this will add is-invalid class to all invalid fields
Note: don't forget to add space ' is-invalid'

  •  Tags:  
  • Related