Как получить django ошибок формы в виде текста вместо html? - PullRequest
2 голосов
/ 12 января 2020

У меня есть тост за отображение ошибок.

$.toast({
    text: '{{ form.non_field_errors }}'
})

Но возвращается формат html. поэтому я получаю ошибку. enter image description here

Но я хотел бы получить текст только из {{ form.non_field_errors }}. Как мне это сделать?

1 Ответ

1 голос
/ 12 января 2020

Вы можете использовать метод .as_text(), на non_field_errors:

$.toast({
    text: '{{ form.non_field_errors<b>.as_text</b> }}'
})

Обратите внимание, однако, что для того, чтобы сделать это более безопасным, вам лучше JSON - указать это, а также пометить вывод как безопасный.

Таким образом, вам лучше выполнить некоторую обработку в представлении:

from json import dumps as jdumps

def some_view(request):
    some_form = ModelForm(request.POST)
    errors = <b>jdumps(</b>some_form.non_field_errors().as_text()<b>)</b>
    return render(request, 'some_template.html', {'errors': errors})

и в шаблоне отобразить это как:

$.toast({
    text: {{ <b>errors|safe</b> }}
})
...