Как сделать правильный набор запросов - django набор запросов - PullRequest
0 голосов
/ 09 июля 2020

привет, надеюсь, у вас все хорошо!

Я не знаю, как сделать правильный запрос здесь,

, чтобы получить общее количество писем со статусом status ='ffecté 'в тот же день я использовал такой набор запросов:

Evenement.objects.annotate(Day=TruncDay('date_Evt')).values('Day')\
    .annotate(affecte=Count('mail_item_fid',filter=Q(status='affecté')))\
    .all().order_by('Day')

, но я хочу получить что-то вроде:

Всего почта имеет статус «аффект»: (например, 100)

дата, когда письмо имеет статус «аффект»: (например, 07.09.2020)

День + 0: (здесь общее количество писем статус 'livré' в разнице дней = 0)

Day + 1: (здесь общая почта имеет статус 'livré' в разнице дней = 1)

и т. д.

[Под разницей в днях понимается разница в днях между (день, когда почта имеет статус 'livré') и (день, когда почта имеет статус'affecté ')]

цель здесь - увидеть, будет ли доставлен mail_item в День 1 или День 2 и т.д. ** 103 4 * вот мой класс:

class Evenement(models.Model):
    EVENEMENT_CHOICES = (
        ("déposé","déposé"),
        ("reçu","reçu"),
        ("expédié","expédié"),
        ("affecté","affecté"),
        ("livré","livré"),
        ("echec de livraison","echec de livraison"),
    )
    mail_item_fid = models.ForeignKey(mail_item,on_delete=models.CASCADE, related_name='mail_item_fid_evenement')
    from_office = models.ForeignKey(Office,on_delete=models.CASCADE, related_name='office_Evt_evenement')
    date_Evt = models.DateTimeField() 
    status = models.CharField(max_length=50,choices=EVENEMENT_CHOICES)
    agent_delivery_cd = models.ForeignKey(Delivery_Agent,on_delete=models.CASCADE,blank=True, null=True ,related_name='agent_evenement')
    def __str__(self):
        return '{}, {}, {}, {} '.format(self.mail_item_fid,self.from_office,self.date_Evt,self.status)

вы можете мне помочь, если это возможно

...