Ho cercato dappertutto per una risposta a questo, ma non ho trovato nulla. Forse questa è solo una domanda stupida o davvero difficile. Eccolo:Annotare un set di query con la differenza di data media? (django)
Diciamo che il mio modello è questo (pseudo codice django):
Event
type = ForeignKey(EventType)
name = CharField
date_start = DateField
date_end = DateField
EventType
name = CharField
Quello che voglio sapere è il tempo medio di durata per ogni tipo di evento. Quello che faccio ora è calcolare la durata media ogni volta che viene creato un nuovo evento (metodo di salvataggio) e memorizzarlo in una colonna average_duration in EventType. Il problema con questo approccio è che non posso rispondere a domande come "qual è stata la durata media per gli eventi di tipo X, durante l'anno Y". Quindi, invece di aggiungere più colonne per rispondere a domande come queste, preferirei farlo in "tempo reale".
Questo può essere fatto annotando il queryset? Per prima cosa dovrei ottenere le differenze di data per ogni tipo di evento, quindi ottenere la loro media e quindi annotare il queryset dell'evento con quella media, presumo.
Sì se si potrebbe fornire alcuni esempi di codice, sarebbe fantastico, grazie –