我想不出一个更合适的问题标题,但我正在寻找一些关于如何实现以下要求的建议:
我有一个
Project
类,可以包含
Task
物体。任务有一个受让人。在我的django模板中,我想为给定用户呈现项目和任务的“树”,只显示那些至少分配给用户一个任务的项目,并且在每个项目中,只显示分配给用户的那些任务。
我最初的方法是首先找到至少有一个分配任务的项目:
def list_assigned_tasks(request, assignee_id):
projects = Project.objects.filter(task__assignee=assignee_id).distinct()
# ...
(不是最有效的方法,但我只处理少量的项目和任务。)
然后我想我可以写一个方法
项目
仅检索分配给用户的任务:
class Project(models.Model):
# ...
def assigned_tasks(self, assignee_id):
return self.task_set.filter(assignee=assignee_id)
或者类似的。
但是,我不能直接从模板中调用该方法。所以,我的问题是:有更好的方法来实现这个目标吗?正在查找有关查询集和模板实现的建议。
(我的另一个想法是在
list_assigned_tasks
-这是一个有效的方法吗?)