【发布时间】:2015-04-21 00:29:02
【问题描述】:
from django.db.models import Q
MODULES_USERS_PERMS = {
MODULE_METHOD: [],
MODULE_NEWS: [],
MODULE_PROJECT: ['created_by', 'leader'],
MODULE_TASK: [],
MODULE_TICKET: [],
MODULE_TODO: []
}
filter_fields = MODULES_USERS_PERMS[MODULE_PROJECT]
perm_q = map(lambda x: Q(x=user), filter_fields)
if perm_q: #sum(perm_q)
if len(perm_q) == 1:
return perm_q[0]
elif len(perm_q) == 2:
return perm_q[0] | perm_q[1]
elif len(perm_q) == 3:
return perm_q[0] | perm_q[1] | perm_q[2]
我不知道如何用语言来描述代码的要求,我希望他能说明一切。 我需要从对象列表中进行过滤。
不需要的代码不起作用。
更新: 代码,看起来更好,但也不起作用:
filters = ['created_by', 'leader']
filter_params = Q()
for filter_obj in filters:
filter_params = filter_params | Q(filter_obj=user)
/projects/ 处的字段错误
无法将关键字“filter_obj”解析为字段。选择是: begin_time, 评论, created_at, created_by, created_by_id, end_time, id、leader、leader_id、name、project_task、status、ticket_project
【问题讨论】:
-
你找到这些问题的答案了吗?
标签: django django-models django-views django-q