Django select_related по множественному наследованию

Я пытаюсь использовать select_related на многостольном поиске наследования.
Мой код имеет некоторые недостатки и задаюсь вопросом, есть ли лучшее решение

class Parent(models.Model):

    user = models.ForeignKey(settings.AUTH_USER_MODEL)


class Child(models.Model):

    pass

С приведенным выше определением класса я хотел бы сериализовать родителей (разнородных)

parents = Parent.objects.all().select_related('user', 'child')

for parent in parents:
    parent.child.user           # <-- another db access, nullifies select_related('user')
    # i'm passing parent.child to ChildSerializer() which expects child object, and it access the user, so it's parent.child.user

я могу сделать

Parent.objects.all().selecte_related('child__user')

но у него есть своя проблема, когда есть несколько дочерних моделей (требуется объединение для каждого дочернего класса)

0 ответов

Другие вопросы по тегам