У меня проблема с использованием select_related функции Django с операцией фильтра, вот моя проблема, у меня есть три класса:
class A:
# various fields here
class B(models.model):
related_A = models.ForeignKey(A)
related_C = models.ForeignKey(C)
attribute1 = models.CharField(..)
# Other attributes
class C(models.model):
# Attributes
Я пытаюсь получить класс A путем фильтрации класса B по ключу related_C в соответствии с другим параметром attribute1 (из класса B). Чтобы проиллюстрировать это должным образом, у меня есть функция get_class_A(self) в моем классе C.
get_class_A(self,param):
classes_B = B.objects.filter(related_C = self,attribute1 = param)
Он возвращает QuerySet классов B. Что я хочу сделать, так это следовать за ForeignKey, указывающим на A, чтобы преобразовать этот QuerySet из B в список объектов A.
Я пробовал разные вещи, такие как:
classes_A = B.objects.select_related('A').filter(related_C = self, attribute1 = param)
и некоторые варианты, но ничего не получилось. Кто-нибудь знает, как это сделать?
Спасибо