Я пытаюсь отфильтровать набор запросов по датам.
Сначала я группирую данные по датам, и у меня нет проблем.
inventario_original = Inventario.objects.all()
inventario = inventario_original.values("fecha").annotate(
valor_coste=Sum(F('existencias') * F('valor_coste')),
valor_venta=Sum(F('existencias') * F('valor_venta')),
existencias=Sum('existencias'))
Затем я нахожу последнюю дату вqueryset.
ultima_fecha_cargada = inventario_original.order_by('-fecha')
ultima_fecha_cargada = ultima_fecha_cargada.first().values('fecha')
Если я напечатаю ultima_fecha_cargada.fecha
, я получу ['15-03-2019']
Наконец, я хочу отфильтровать набор запросов с элементами с этой последней датой.
inventario_producto = inventario_original.filter(fecha__date=ultima_fecha_cargada.fecha).values("codigo_kinemed").annotate(existencias=Sum('existencias'))
Я получаю полный набор запросов без применения фильтра.Если я печатаю полученные даты, я получаю ['15-03-2019']
, поэтому формат даты совпадает.
Также пробовал
filter(fecha=ultima_fecha_cargada.fecha)
filter(fecha=ultima_fecha_cargada)
filter(fecha=date(day=15, month=3, year=2019))
filter(fecha__contains=ultima_fecha_cargada.fecha)
filter(fecha__contains=date(day=15, month=3, year=2019)
Полный код просмотра здесь
def InventarioView(request):
inventario_original = Inventario.objects.all()
ultima_fecha_cargada = inventario_original.order_by('-fecha')
ultima_fecha_cargada = ultima_fecha_cargada.first().values('fecha')
inventario = inventario_original.values("fecha").annotate(
valor_coste=Sum(F('existencias') * F('valor_coste')),
valor_venta=Sum(F('existencias') * F('valor_venta')),
existencias=Sum('existencias'))
inventario_producto = inventario_original.filter(fecha__date=ultima_fecha_cargada).values("codigo_kinemed").annotate(
existencias=Sum('existencias'))
return render(request, 'catalog/inventario.html', {
'ultima_fecha_cargada': ultima_fecha_cargada,
'inventario_producto': inventario_producto,
'inventario': inventario,
})