Добавление класса CSS в поле при ошибке проверки в Django - PullRequest
11 голосов
/ 31 января 2011

Я использую модель формы Джанго, и это действительно хорошо.Как выделить фактическое текстовое поле (например, border: red), если с ним связана ошибка проверки.По сути, я хочу добавить класс (ошибку), если в поле есть ошибка проверки.

Ответы [ 4 ]

15 голосов
/ 31 января 2011

Как насчет определения error_css_class? http://docs.djangoproject.com/en/dev/ref/forms/api/#styling-required-or-erroneous-form-rows?

class MyForm(ModelForm):
    error_css_class = 'error'
2 голосов
/ 11 апреля 2014

Расширение после ответа errx.

Добавить CSS

.error input, .error select {
    border: 2px red solid;
}

чтобы особо выделить поле

1 голос
/ 10 апреля 2017

Попробуйте это?

self.fields['field_you_want_to_add_error'].widget.attrs['class'] = "error"
0 голосов
/ 01 ноября 2018

Чтобы ответить на исходный вопрос.

Вы можете добавить нужный класс в поле в представлении, куда вы отправляете свою форму и делаете проверку form.is_valid().Не самая красивая, но она будет работать.

def submit_form(request):
    if request.method = 'POST':
        if. form.is_valid():
            # Do something with clean form data
            pass
        else:
            # Append css class to every field that contains errors.
            for field in form.errors:
                form[field].field.widget.attrs['class'] += ' my-css-class'
    return render(request, submit_form.html, {
        'form': form
    })
...