我有3个模型(比方说A,B,C)。型号 C 具有 A 和 B 作为外键。现在我有 A 的primary_key,我想检索相关的 B 对象列表。
我希望 B 的整个对象不仅仅是我可以使用values()或values_list()获取的字段。我的模型如下:
class A(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=200)
class B(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=200)
class C(models.Model):
name = models.CharField(max_length=200)
roll_number = models.IntegerField(default=0)
a = models.ForeignKey(A,related_name='c_a')
b = models.ForeignKey(A,related_name='c_b')
答案 0 :(得分:0)
您可以稍微修改一下来自@Piyush S. Wanare的答案:
c.objects.filter(a=primary_key_a).values('b')
或者,如果您只想要一个只包含b个对象的列表,则可以使用values_list()
:
c.objects.filter(a=primary_key_a).values_list('b', flat=True)
这会给你一个b的平面列表(在这种情况下)。 values
返回字典,values_list
类似,但输出是元组列表而不是字典。附加选项flat=True
(如果只检索一个字段,则有效)返回对象的平面列表,而不是对象元组列表。
供参考的文件: