Вы формируете код здесь хорошо, но ваш взгляд должен измениться на это:
def add(request):
if request.method =='POST':
form = NuevaDiligenciaForm(request.POST)
if form.is_valid():
clean_data = form.cleaned_data
# Now do something with the cleaned data...
else:
form = NuevaDiligenciaForm()
return render_to_response('account/add.html', { 'formulario': form }
и ваш шаблон должен выглядеть так:
{% if message %}
<p style="color: red;">{{ message }}</p>
{% endif %}
<form action='.' method='POST' class="nueva-diligencia">
{{ formulario.as_p }}
<input type="submit" value="Continuar">
</form>
Теперь происходит следующее: если в POST есть неверные данные, form.is_valid () завершится ошибкой, и представление вернет проверенную форму, которая будет содержать ошибки рядом с полями, в которых они есть. Django позаботится обо всей вашей обработке ошибок здесь! Попробуйте и дайте мне знать, работает ли он так, как вы ожидаете.
Это довольно хороший ресурс, если вы хотите посмотреть, как / почему эта упрощенная версия на самом деле работает лучше: http://www.djangobook.com/en/2.0/chapter07/