具有自定义选择字段的Django模型查询

Ach*_*nol 2 python django django-models

我正在使用称为django-granular-permissions(http://code.google.com/p/django-granular-permissions/)的行级权限模型.权限模型只有两个字段,即content-type和object id.

我使用了以下查询:

 User.objects.filter(Q(row_permission_set__name='staff') | \
     Q(row_permission_set__name='student'), \
     row_permission_set__object_id=labsite.id)
Run Code Online (Sandbox Code Playgroud)

我想在结果集中添加is_staff和is_student布尔字段,而不是每次获取结果时都要查询.

Django文档显示了查询集的extra()方法,但我无法弄清楚我应该用这种关系为纯SQL选择查询编写什么.

这该怎么做?

小智 5

.extra(select={'is_staff': "%s.name='staff'" % Permission._meta.db_table, 'is_student': "%s.name='student'" % Permission._meta.db_table, }) 
Run Code Online (Sandbox Code Playgroud)