Я пытаюсь получить информацию о продажах в месяц.Я могу сделать расчет, но тогда я не могу получить только значение вместо полного набора запросов.
Я нашел разные варианты и некоторые из них работают в одном контексте, но не в другом.Я предполагаю, что есть некоторое неправильное понимание данных различных наборов запросов и словарей.
Вот мой пример.
for este in inventario_diferencia:
este['stock_valor_venta'] = este['existencias'] * este['valor_venta']
este['diferencia'] = inventario_original.filter(fecha=diferencia_fecha, codigo_kinemed=este['codigo_kinemed']).values()[0]['existencias'] - este['existencias']
media_venta_mes = Ventas.objects.filter(prod_codigo=este['codigo_kinemed']).values("prod_codigo").annotate(media=Sum("uds")/Count(TruncMonth('fecha'), distinct=True))
Если вывести media_venta_mes
, я получу правильный расчет.Например: <QuerySet [{'prod_codigo': 'TP3 SHOULDER', 'media': 24}]>
Затем я хочу вставить это значение media
в общий словарь inventario_diferencia
.
Если я сделаю media_venta_mes = media_venta_mes.values("media")
, я получу <QuerySet [{'media': 24}]>
.
Если я попытаюсь media_venta_mes = media_venta_mes.get("media")
, который работает для меня в совокупности, я получу too many values to unpack (expected 2)
.
Если я попытаюсь media_venta_mes = media_venta_mes.media
, я получу 'QuerySet' object has no attribute 'media'
.
Я попробовалчто-то еще, я не могу документировать сейчас.Я знаю, что здесь я придумаю глупого новичка, извините и спасибо за помощь.
Обновление тестов
Я пытаюсь media_venta_mes[0].media
и получаю 'dict' object has no attribute 'media'
.
Я пытаюсь media_venta_mes['media']
Я получаю TypeError
.
Я пытаюсь media_venta_mes.first().media
Я получаю 'dict' object has no attribute 'media'
Если я пытаюсь
media_venta_mes = Ventas.objects.filter(prod_codigo=este['codigo_kinemed']).values("prod_codigo").annotate(media=Sum("uds")/Count(TruncMonth('fecha'), distinct=True)).first()
este['diferencia_mes'] = media_venta_mes.media
Я получаю 'dict' object has no attribute 'media'
Если я пытаюсь media_venta_mes.first()['media']
Я получаю 'NoneType' object is not subscriptable