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)