我在过滤操作中使用 Django 的 select_related 功能时遇到问题,这是我的问题,我有三个类:
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
我想要做的是,通过根据另一个参数attribute1(来自B类)在键related_C上过滤B类来获得A类。为了正确说明,我的C 类中有一个函数get_class_A(self)
get_class_A(self,param):
classes_B = B.objects.filter(related_C = self,attribute1 = param)
它返回一个类 B 的 QuerySet。我想要做的是跟随指向 A 的 ForeignKey,以便将 B 的这个 QuerySet 转换为对象 A 的列表。
我尝试了各种方法,例如:
classes_A = B.objects.select_related('A').filter(related_C = self, attribute1 = param)
和一些变化,但没有任何效果。有谁知道该怎么做?
谢谢