Django Запрос с использованием внешнего ключа

Я начинаю работать с запросами в django и пытаюсь воспроизвести результаты join в sql.

У меня есть две модели, которые представляют родителя (WaiverAdult) и ребенка (WaiverMinor). Я хотел бы вернуть родителя и ребенка в наборе запросов, чтобы я мог сгруппировать их в отформатированном шаблоне, например, так:

Джон Папа Томми Сын Эмбер Дочь

Джен Джонс Стиви Джонс Майк Джонс

МОДЕЛИ:

class WaiverAdult(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50, blank=True)

class WaiverMinor(models.Model):
    first_name = models.CharField(max_length=50, blank=True)
    last_name = models.CharField(max_length=50, blank=True)
    parent = models.ForeignKey(WaiverAdult, on_delete=models.CASCADE)

VIEW:

class WaiverListView(ListView):
    
    template_name = 'waiver/waiver_list.html'
    model = WaiverAdult
    context_object_name = "waiver_list"
    queryset = WaiverAdult.objects.order_by('created')

Как правильно написать этот запрос? Заранее благодарю. Я искренне признателен за рекомендации.

Если вы хотите получить доступ к связанным объектам, лучшим способом будет их предварительная выборка, чтобы не обращаться к базе данных каждый раз, когда вы хотите получить доступ к связанному объекту. Это можно сделать следующим образом:

waiver_adults = WaiverAdult.objects.all().prefetch_related('waiverminor_set').order_by('created')

Теперь, когда вы это сделали, вы можете получить доступ к связанным объектам без повторного обращения к базе данных следующим образом:

[adult.waiverminor_set.all() for adult in waiver_adults]
Вернуться на верх