Django - запрос многих моделей FK от родителя - PullRequest
0 голосов
/ 04 сентября 2018

С учетом следующего псевдокода:

class A(models.Model)

class B(models.Model)
    a = models.FK(A)

class C(models.Model)
    b = models.FK(B)

class D(models.Model)
    b = models.FK(B)

Если у меня есть PK A, как я могу получить все связанные экземпляры каждой дочерней модели? (B, C и D).

Надеюсь, это имеет смысл.

Спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

По-моему, единственный способ - это все. Определите связанное имя, и вы можете попробовать вот так. Псевдо пк А = пк

class A(models.Model):

class B(models.Model):
    a = models.FK(A, related_name='related_B')

class C(models.Model):
    b = models.FK(B, related_name='related_C')

class D(models.Model):
    b = models.FK(B, related_name='related_D')


a = A.objects.get(pk=pk)
results = []
results.append(a.related_B.all())
for item in a.related_B.all():
    results.append(item.related_C.all())
    results.append(item.related_D.all())

и результаты теперь имеют все связанные экземпляры каждой дочерней модели A. Обруч это помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...