我想根据其中一个表属性访问两个相关表中的所有值:
obj = A.objects.filter(B__sample='sample_name').select_related()
但是当我这样做时:
{% for o in obj %}
{{o.sample}}
{{o.results}}
{{o.qc}}
{% endfor %}
仅返回o.results和o.qc(来自表A),o.sample未返回(来自表B)
如何从查询集对象中访问表A和B中的所有值?
答案 0 :(得分:1)
obj = A.objects.filter(B__sample='sample_name').select_related('b')
尝试使用小外国型号名称
答案 1 :(得分:1)
您误解了模型在Django中的运作方式。
sample
是来自模型B的属性,并且始终是该属性。 Django不会将其作为模型A的直接属性添加;这会令人困惑。
您仍然可以通过模型B的实例访问它; Django给你的魔力是o.B
(或你的ForeignKey被调用的任何东西)将访问该模型B实例,因此你可以o.B.sample
。由于您已使用select_related
,因此不会导致其他数据库命中。