class VentaListView(ListView): context_object_name = 'ventas' def dispatch(self, request, *args, **kwargs): self.form = VentaPeriodoForm(request.GET, prefix='venta') if self.form.is_valid(): self.inicio = self.form.cleaned_data['inicio'] self.fin = datetime.combine(self.form.cleaned_data['fin'], time.max) self.item = self.form.cleaned_data['item'] return super(VentaListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): return Venta.objects.filter( recibo__created__gte=self.inicio, recibo__created__lte=self.fin, recibo__nulo=False, item=self.item, ) def get_context_data(self, **kwargs): context = super(VentaListView, self).get_context_data(**kwargs) context['item'] = self.item context['inicio'] = self.inicio context['fin'] = self.fin total = self.get_queryset().aggregate(total=Sum('total'))['total'] if total is None: total = Decimal() context['total'] = total return context
class VentaListView(ListView): context_object_name = 'ventas' def dispatch(self, request, *args, **kwargs): self.form = VentaPeriodoForm(request.GET, prefix='venta') if self.form.is_valid(): self.inicio = self.form.cleaned_data['inicio'] self.fin = datetime.combine(self.form.cleaned_data['fin'], time.max) self.item = self.form.cleaned_data['item'] return super(VentaListView, self).dispatch(request, *args, **kwargs) def get_queryset(self): return Venta.objects.filter( recibo__created__gte=self.inicio, recibo__created__lte=self.fin, recibo__nulo=False, item=self.item, ) def get_context_data(self, **kwargs): context = super(VentaListView, self).get_context_data(**kwargs) context['item'] = self.item context['inicio'] = self.inicio context['fin'] = self.fin context['total'] = sum(v.total() for v in self.object_list) return context