Obtener elementos de una relación en un DetailView Django


Si tenemos una clase "Productos" que tiene relaciones con otra clase "Existencias" y queremos mostrarlo en un DetailView (deberia ser similar en todos), se puede hacer de la siguiente manera.


#Relaciones en DetailView
class ProductoDetail(DetailView):
    model = Product
    template_name = "products/producto_detail.html"
    def get_context_data(self, **kwargs):
        context = super(ProductDetail, self).get_context_data(**kwargs)
        context['pk'] = self.kwargs.get('pk') # Clave Primaria del producto actual
        #Teniendo la clave primaria hacemos un query a la clase Existencias pasando el primary key de esta forma
        context['existencias'] = Existencias.objects.all().filter(producto=self.kwargs.get('pk'))
        return context

Con esto en nuestro template tendríamos la variable 'existencias' la cual podriamos usar a nuestro antojo.

Lexo

No hay comentarios:

Publicar un comentario

Instagram