El patrón suggested para el procesamiento de una forma en una vista parece demasiado complejo y no DRY a mí:¿Alternativa al modelo de procesamiento de formularios django?
def contact(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
form = ContactForm() # An unbound form
return render_to_response('contact.html', {
'form': form,
})
Eso es un montón de condicionales, se repite la construcción ContactForm(), y todo el bloque se repite en todas partes una vista necesita procesar un formulario. ¿No hay una mejor manera de hacerlo?
Django tiene vistas genéricas desde hace varios años. Esta pregunta y todas las respuestas que veo están desactualizadas. Ver: https://docs.djangoproject.com/en/1.9/ref/class-based-views/generic-editing/ – guettli