对于经常使用django标签的人,您可能会意识到我是django的新手(并且很长一段时间都没有真正进行过开发)。
我正在为ORM进行查询。
我有两种模式,用户和部门。部门有一个领导者,对用户而言是FK。
如何返回部门的所有实例及其相关的用户姓氏和名字?
类似的东西:
SELECT Department.dept, User.first_name, User.last_name
FROM Departments, Users
WHERE Department.leader = User.Id OR Department.leader = NULL
感谢您的帮助,我只是暂时还没有接受关于ORM的查询思想。
答案 0 :(得分:1)
如何返回部门的所有实例及其相关的用户姓氏和名字?
您可以使用leader
访问some_department
中的some_department.leader
。但是,如果您想以这种方式注释每个部门(例如,因为您需要快速访问这些字段),则可以编写:
from django.db.models import F
Department.objects.annotate(
first_name=F('leader__first_name')
last_name=F('leader__last_name')
)
这将返回Department
实例,但是每个departement
都有两个额外的属性,first_name
和last_name
包含first_name
和{{1} }。
这将导致如下查询:
last_name