如何在Django-viewflow中查询分配给用户的所有任务?
Django-viewflow 查询指定用户任务及关联Process任务方法
一、使用TaskQuerySet.inbox()查询指定用户的任务
inbox()是viewflow内置的用于获取用户待办任务的QuerySet方法,调用方式简洁直接:
- 在视图中获取当前请求用户的待办任务:
from viewflow.models import Task def user_tasks(request): user_tasks = Task.objects.inbox(user=request.user) # 后续业务处理,如模板渲染、返回JSON等 - 指定特定用户查询:先获取目标用户对象,再传入
inbox()方法from django.contrib.auth.models import User from viewflow.models import Task target_user = User.objects.get(username="target_user_name") assigned_tasks = Task.objects.inbox(user=target_user)
inbox()会自动过滤出分配给目标用户、且处于待处理状态的任务,无需额外添加过滤条件。
二、从Process对象查询关联的用户任务
Process与Task是一对多关联(Task通过process外键关联到Process),可通过Process实例的反向关联查询任务:
- 基础过滤:查询该流程下分配给指定用户的所有任务
from viewflow.models import Process # 获取目标Process实例 process = Process.objects.get(pk=1) # 过滤该流程下指定用户的任务 user_process_tasks = process.task_set.filter(assignee=target_user) - 结合
inbox():仅获取该流程下用户的待办任务,直接在反向关联QuerySet上调用inbox()user_process_inbox_tasks = process.task_set.inbox(user=target_user)
内容的提问来源于stack exchange,提问作者surge_
相关产品推荐
相关产品推荐

