привет, надеюсь, у вас все хорошо!
Я не знаю, как сделать правильный запрос здесь,
, чтобы получить общее количество писем со статусом 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)
вы можете мне помочь, если это возможно