¿Cuál es la diferencia (en el lenguaje que puede entender un python/django noob) en una vista entre render()
, render_to_response()
y direct_to_template()
?Django: ¿cuál es la diferencia entre render(), render_to_response() y direct_to_template()?
p. Ej. de Nathan Borror's basic apps examples
def comment_edit(request, object_id, template_name='comments/edit.html'):
comment = get_object_or_404(Comment, pk=object_id, user=request.user)
# ...
return render(request, template_name, {
'form': form,
'comment': comment,
})
Pero también he visto
return render_to_response(template_name, my_data_dictionary,
context_instance=RequestContext(request))
Y
return direct_to_template(request, template_name, my_data_dictionary)
Cuál es la diferencia, lo que debe usar en cualquier situación particular?
Corrección. Según docs 'render()' está disponible desde 1.3. – AppleGrew
@AppleGrew, buen partido! La "Comunidad" modificó mi publicación para que apunte a ramas específicas y eligieron 1.4 –
Nota: las vistas genéricas ** basadas en funciones ** están en desuso, no en función ** de visitas **. Las vistas genéricas que se envían con Django ahora se implementan utilizando vistas basadas en clases (TemplateView), que solían implementarse como funciones (direct_to_template, etc.). Las vistas implementadas como funciones, mis preferencias personales, aún son compatibles y eso no cambiará. –