【发布时间】:2014-03-30 17:15:02
【问题描述】:
我在过滤操作中使用 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)
还有一些变化,但没有任何效果。有谁知道该怎么做?
谢谢
【问题讨论】:
标签: django django-queryset django-select-related