Как получить все строки в третьей таблице, обращаясь к первой через транзитную (внешние ключи)?

Есть модель типа:
class A( models.Model ):
	field = models.CharField()

class B( models.Model ):
	a = models.ForeignKey( A, on_delete = models.CASCADE, related_name = 'a_b_a' )

class C( models.Model ):
	b = models.ForeignKey( B, on_delete = models.CASCADE, related_name = 'b_c_b' )

Обращаясь в таблице "A":
c_all = A.objects.all()
Нужно дописать запрос, чтобы вытягивались все строки из таблицы "С". В таблице "B" может быть несколько строк, относящихся к "А", так же, в таблице "С" может быть множество строк, относящихся к любой строке в "В".
  • Вопрос задан
  • 53 просмотра
Решения вопроса 2
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
c_all = C.objects.filter(b__a_id=123)
Ответ написан
@maksam07 Автор вопроса
Пришлось идти от обратного, не знаю, правильный ли это вариант, но он работает:
a_get = A.objects.get( id = 123 )
c_all = C.objects.filter( b__a = a_get )
Может кто-то даст еще комментарий или на этом варианте можно остановиться?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Junto Москва
от 80 000 до 120 000 ₽
Верфь Екатеринбург
от 70 000 до 140 000 ₽
Большая Тройка Москва
от 120 000 до 200 000 ₽
23 сент. 2020, в 06:18
20000 руб./за проект
23 сент. 2020, в 06:11
2000 руб./за проект
23 сент. 2020, в 00:43
40000 руб./за проект