Perguntas sobre o django form.errors, para obter as mensagens de erro brutas

O documento do django diz https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.errors

Acesse o atributo errors para obter um dictionary de mensagens de erro:

f.errors {‘remetente’: [‘Digite um endereço de e-mail válido.’], ‘assunto’: [‘Este campo é obrigatório.’]}

No entanto, quando tento imprimir forms.errors, eu tenho código html.

def login(request): if request.method == "GET": return render(request, r"login.html") else: form = LoginForm(request.POST) if form.is_valid(): return HttpResponse("valid") else: print form.errors return HttpResponse("Invalid") 

 Django version 1.6.4, using settings 'test_proj.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. 
  • username
    • Ensure this value ha s at most 3 characters (it has 6).

Eu preciso para obter os erros brutos para mostrar um messager ajax, por exemplo

 response_json = {"status": "error", "content": "Username is too short"} 

Se houver qualquer outra maneira de obter as mensagens de erro brutos, você também pode me dizer.

Isso é simplesmente um artefato de call printing: que implicitamente se converte em uma string, e o método __str__ da class ErrorList chama seu método as_ul para output como HTML – isto é para que você possa exibir a lista de erros em um template simplesmente fazendo {{ form.errors }} .

O conteúdo do object em si não está em HTML, e você pode vê-lo fazendo print repr(form.errors) .