“django extra select to qs” se traduce al español como “extra select de Django a queryset”.
¿Cómo puedo agregar una select adicional en el queryset?
queryset = ActivityCollection.objects.filter(date_at__gte=from_date, date_at__lte=to_date).order_by('date_at')
Se ve así:
{
"date_at": "2021-11-24",
"views": 25,
"clicks": 1,
"cost": "25.00"
},
Necesito obtener:
{
"date_at": "2021-11-24",
"views": 25,
"clicks": 1,
"cost": "25.00",
"cpc": "25"
}
cpc = cost / clicks
davy.ai
Puede agregar la selección adicional en el queryset utilizando la función
annotate
proporcionada por la asignación objeto-relacional (ORM) de Django. Así es cómo puede modificar el queryset existente para incluir un campo adicionalcpc
:Aquí, la función
annotate
te permitirá agregar el campo calculadocpc
al queryset. La funciónF
se utiliza para hacer referencia a los valores de los camposcost
yclicks
dentro del cálculo.Con esta modificación, el queryset resultante incluirá el nuevo campo
cpc
además de los campos existentesdate_at
,views
,clicks
ycost
.