我想获取所有可用组的列表,其中包含一个额外的布尔字段,显示特定用户是否是该组的成员。
#This give me all groups related to the user "myuser"
mygroup = myuser.groups.all()
结果是与用户" myuser"相关的id,groupname列表。
我如何拥有所有群组的列表(包括那些不属于我的群组的群组),其中包含" myuser"在附加的布尔字段(user_membership)?
id,groupname,user_membership(true / false)
答案 0 :(得分:0)
您可以使用a conditional expression:
Group.objects.annotate(user_membership=Case(
When(user=myuser, then=Value(True)),
default=Value(False),
output_field=BooleanField(),
))
这会返回包含user_membership
或True
值的其他False
字段的所有群组。