Диаграмму схемы моего проекта можно посмотреть ЗДЕСЬ .
- У меня есть Сотрудник, родитель которого является пользователем django.
- Сотрудник связан скомпания.В компании может быть много сотрудников.
- Сотрудник может иметь определенные задачи, и над каждой задачей работает много сотрудников.Следовательно, отношение 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 (), но он также выбирает только атрибуты Foreignkey.Любые хорошие предложения, чтобы сделать эту задачу максимально эффективной?