Actualmente tengo una línea en mi Django aplicación como esta:Producto de dos campos de anotación
db.execute("SELECT SUM(price * qty) FROM inventory_orderline WHERE order_id = %s", [self.id])
prefiero realizo esto a través de la interfaz de modelos proporcionado mi Django, pero no puedo encontrar ninguna referencia.
Estoy bastante seguro de que esto se puede hacer con una anotación, pero los ejemplos solo cubren algunos de ellos y no puedo encontrar una lista en la documentación.
me gustaría hacer algo como esto:
self.line_items.annotate(lineprice=Product('orderline__price', 'orderline__qty')).aggregate(Sum('lineprice'))
¿Puede alguien sugerir una clase de anotación a utilizar para realizar la multiplicación? Mejor aún, ¿un enlace a la API que enumera todas estas clases de anotación/agregación?
Gracias, primera vez que he visto que la técnica . – Cogsy
Puedo hacer que esto funcione, pero tengo que usar SUM (price * qty) ya que no sigue las relaciones double'_ ', y el agregado no puede ver el campo' lineprice '. Todavía menos que deseable me temo – Cogsy
Esto no funcionará. El 'aggregate' no puede ver las cosas introducidas por' extra' (también el 'select' espera un diccionario, por lo que necesitaría' {} 'en vez de'() ') – greg