Являются ли отношения один-к-одному или один-ко-многим?Если один к одному, вы можете получить все ссылки в одном запросе, используя агрегацию функций Django.(Изменить: извините, не ссылки, только их pks) Например:
from django.db.models import Min
Person.objects.all().annotate(email=Min('email'), phone=Min('phone'), address=Min('address'))
Я не знаю, будет ли он хорошо интегрироваться с ListView, хотя ... Может быть, с использованием OneToOneField будет работать в этом случае (даже без агрегации), я не уверен.
Если отношения один-ко-многим, я боюсь, что вы не сможете сделать это водиночный запрос.Как вы, наверное, уже знаете, имея объект Person
, вы можете получить связанные модели, используя суффикс _set
: email_set
, phone_set
и address_set
.Но для доступа к ним вам потребуются другие запросы (больше обращений к базе данных).