我正在尝试通过将 auth_user (主表)与 auth_user_user_permissions(manyTomany ) 加入来列出所有 permission_id 。我试过以下
PER = sorted((item.permission_id) for item in list(User.objects.filter(user_permissions__user=2)))
它是说'用户'对象没有属性'permission_id。
请指导我
我正在尝试通过将 auth_user (主表)与 auth_user_user_permissions(manyTomany ) 加入来列出所有 permission_id 。我试过以下
PER = sorted((item.permission_id) for item in list(User.objects.filter(user_permissions__user=2)))
它是说'用户'对象没有属性'permission_id。
请指导我
User.objects.filter(...)
获取用户的查询集。因此 item 是一个User()
实例。要访问该项目的权限,请直接item.user_permissions.all()
. 因此在你的情况下
User(pk=2).user_permissions.values_list('pk', flat=True).order_by('pk')
# or
[x.pk for x in Permission.objects.filter(user=2).order_by('pk')]
参考文档以获取更多信息。
如果您想要权限 ID,您需要直接查询权限表。
permission_ids = Permission.objects.filter(user=2).values_list('id', flat=True)