У меня есть 3 модели, связанные друг с другом с помощью FK:
class MainEvent(models.Model):
name = models.CharField(max_length=512, blank=True)
class Event(models.Model):
main_event = models.ForeignKey(MainEvent, blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=512, blank=True)
class SubEvent(models.Model):
event = models.ForeignKey(Event, blank=True, null=True, on_delete=models.CASCADE)
done = models.BooleanField(default=False)
Мне нужно создать один обратный запрос для модели MainEvent, который содержит связанные события и Subevents. Я буду использовать это с Q для фильтрации нескольких опций.
Например:
есть 2 MainEvents, у каждого из них есть 2 или более событий, и у каждого события есть 2 или более Subevents. Я пытаюсь создать один Query примерно так:
[MainEvent_1:[Event_1:[Subevent_1,Subevent_2,...],Event_2:[Subevent_5,...]], MainEvent_2:[Event_2:[Subevent_2,..]]]
На данный момент я создаю словарь, который содержит желаемый результат, но с этим я не использую отношения Q, такие как & или |.
В конце я использую эти данные в шаблонной таблице, чтобы показать все события и отфильтровать их:
желаемая структура таблицы:
main event_1:
event_1:
subevent_1
subevent_2
event_2:
subev...
...........
main event_2:
event_2:
subev....
Спасибо за ваше время.