Django группирует по дате без вычисления какой-либо метрики

У меня есть эти две модели, и я пытаюсь построить запрос в django так, чтобы, задав Jobproject, я мог получить все даты с событиями и какие это события... сгруппированные по дате

По сути, если дать проект, получив взамен словарь, который будет выглядеть следующим образом:

{
 <10/10/21>:[Party,Meeting,DoctorAppointment];
 <10/10/21>:[Game,Work];
 <10/10/21>:[Dinner];
 <10/10/21>:[Gym];
 }

Рассматривая приведенные ниже модели, я подумал о создании запроса типа instance.jobproject_events.order_by('date') и последующем манипулировании результатом в python. Но я надеялся, что в Django есть способ сделать это через запрос, используя что-то вроде groupby.

class EventName(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=30, null=True)

    def __str__(self):
        return self.name

class Event(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    date = models.DateField(blank=True, null=True)
    event_name = models.ForeignKey(EventName, blank=True, on_delete=models.CASCADE, related_name='events', null=True)
    project = models.ForeignKey(JobProject, blank=True, on_delete=models.CASCADE, related_name='jobproject_events', null=True)

    def __str__(self):
        return self.project.title + ": "+ str(self.date.strftime("%m/%d/%Y")) + " - "+ str(self.event_name.name)
        #+ ": from " + str(self.date) #+ " to " + str(self.date_end)
Вернуться на верх