es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“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

Tags:  , , ,

Answer

  1. Avatar for 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 adicional cpc:

    desde django.db.models importar F
    
    queryset = ActivityCollection.objects.filter(date_at__gte=from_date, date_at__lte=to_date).annotate(cpc=F('cost')/F('clicks')).order_by('date_at')
    

    Aquí, la función annotate te permitirá agregar el campo calculado cpc al queryset. La función F se utiliza para hacer referencia a los valores de los campos cost y clicks dentro del cálculo.

    Con esta modificación, el queryset resultante incluirá el nuevo campo cpc además de los campos existentes date_at, views, clicks y cost.

Comments are closed.