Funciones de Acceso Directo de Django
Funciones de Acceso Directo de Django
Funciones de Acceso Directo de Django
(shortcuts)
El paquete django.shortcuts colecciona funciones de ayuda y clases que
abarcan mltiples niveles de MVC. En otras palabras estas funciones/clases
introducen acoplamiento controlado por conveniencia.
1. Render
render(request, template_name[, dictionary][, context_instance][,
content_type][, status][, current_app][, dirs])
Argumentos Obligatorios
Argumentos Opcionales
Ejemplo:
El siguiente ejemplo renderiza la plantilla myapp/index.html con el
MIME type application/xhtml+xml:
from django.shortcuts import render
def my_view(request):
# View code here...
return render(request, 'myapp/index.html', {"foo": "bar"},
content_type="application/xhtml+xml")
2. render_to_response
Ejemplos
El siguiente ejemplo renderiza la plantilla myapp/index.html con el MIME
type application/xhtml+xml:
from django.shortcuts import render_to_response
def my_view(request):
# View code here...
return render_to_response('myapp/index.html', {"foo": "bar"},
content_type="application/xhtml+xml")
3. Redirect
redirect(to, [permanent=False, ]*args, **kwargs)
Retorna un HttpResponseRedirect apropiado al URL para pasar los
argumentos.
Los argumentos pueden ser:
Una URL absoluta y relativa, las cuales sern usados tal cual para la
ubicacin de redireccin.
Ejemplo:
T puedes usar la funcin redirect() en un nmero de formas.
4. get_object_or_404
5. get_list_or_404
get_list_or_404 ( klass , * args , ** kwargs )
Devuelve el resultado del filter() en un manager de modelo determinado
emite una lista, arroja Http404 si la lista resultante esta vaca.
Argumentos Requeridos
Klass: un Model, Manager o instancia de QuerySet desde la cual se
consigue la lista.
Ejemplo
El siguiente ejemplo obtiene todos los objetos publicados desde el
MyModel:
from django.shortcuts import get_list_or_404
def my_view(request):
my_objects = get_list_or_404(MyModel, published=True)
Este ejemplo es equivalente a:
from django.http import Http404
def my_view(request):
my_objects = list(MyModel.objects.filter(published=True))
if not my_objects:
raise Http404("No MyModel matches the given query.")
NOTA:
HttpResponse
El objeto HttpResponse permite enviar contenido a la pgina. Uno es
responsables de crearlos, poblarlos y enviarlos.
Decir al Navegador tratar la respuesta como un archivo adjunto
Para dcirle al navegador para tratar la respuesta como un archivo adjunto,
utilice el argumento content_type y