0

我的项目的架构图可以在这里查看。

  1. 我有一个员工,他的父母是 django 用户。
  2. 员工与公司有关。一家公司可以有很多员工。
  3. 一个员工可以有某些任务,每个任务都有许多员工在处理它。因此,m2m 关系由名为 Emp_relatedTo_Task 的表关联。

对于某个视图,我想获取登录用户的所有任务、与这些任务相关的公司以及在这些公司工作的员工。

到目前为止,我取得的成就是:

emp = request.user.get_profile # get_profile fetches employee 

tasks_to_emp = Task.objects.filter(employee = emp).values_list("id")

user_list = EmployeeTask.objects.filter(task__in = tasks_to_emp).values_list("user")

employees = Employee.objects.filter(id__in = user_list)

company = [employee.company for employee in employees]
company = set(company)

这是一种业余且效率较低的执行任务的方式。我研究了 select_related() 但这也只获取外键属性。有什么好的建议可以尽可能高效地完成这项任务吗?

4

1 回答 1

0

您忘记提及什么是 aproject但假设项目是任务列表:

emp = Employee.objects.get(id=1) # example employee

# All employees that work for the same company as this employee
company_employees = Employee.objects.filter(company=emp.company)

# List of tasks for this employee, if your FK in Employee is called `task`
emp_tasks = Employee.task_set.all() 

# The company for this employee
company = emp.company
于 2012-03-05T05:17:05.263 回答