Tengo: base.html, home.html, article.html, category.html.
Lo que quiero es tener un "sidebar" en cada pagina, que solo sea incluirlo en base.html.
Se puede lograr perfectamente agregando un objects.all en cada vista, pero la idea seria crear una función para que todo quede en la misma, el problema es que debo pasarle un "request" y crearle su respectiva "urlconf" pero como estamos claro yo no quiero una pagina "sidebar/" si no bloque mas para agregar un "sidebar". Amigos no se si los he liado, aquí algo de código:
Código Python:
Ver original
from blog.models import Post, Categoria def index_view(request): post = Post.objects.all().order_by("-fecha") lastsidebar = Post.objects.all().order_by("-titulo")[:100] catsidebar = Categoria.objects.all() return render_to_response("home.html", {'post': post, 'cat': cat sidebar, 'last': last sidebar}) #si notan siempre tengo que agregar lastsidebar y catsidebar en cada view que cree. def post_view(request, slug): post = get_object_or_404(Post, slug=slug) catsidebar = Categoria.objects.all().order_by("-titulo") lastsidebar = Post.objects.all().order_by("-titulo")[:100] return render_to_response("post.html", {'post': post, 'cat': cat sidebar, 'last': last sidebar}) #Lo que quiero es eliminar lastsidebar y catsibdear de todas las views y agruparlo en una función sidebar. #El problema es que necesito pasar el parámetro request pero como no es una pagina, no tengo idea como hacerlo. def sidebar(): #............. return render_to_response('sidebar.html', ctx)
Así como esta funciona, pero quisiera saber lo anterior mencionado y también si creando una función aparte para el sidebar realizaría menos consultas.
Muchas Gracias si me pueden sacar de esa duda, mas que todo porque quiero saber como funciona.
Saludos.