Django REST-序列化User.get_all_permissions

时间:2018-09-11 01:53:30

标签: django django-rest-framework

我正在使用Django Rest后端和VueJS前端构建应用程序,并正在通过授权和身份验证。我的身份验证工作正常,但是让前端(VueJS)知道用户有权在模型的添加/更改/查看/删除方面做了些什么。例如,如果用户无法添加客户,则我不想显示“添加客户”按钮。

通过Django文档和StackOverflow上的解决方案,我相信最简单的方法是将用户的权限从Django发送到VueJS。

我看到的获取权限的“最佳” /“最简单”方法是:

    userModel = User.objects.get(request.user)
    return User.get_all_permissions(userModel)

我陷入困境的地方恰恰是该逻辑的放置位置以及如何对其进行序列化。以上是否属于View,Serializer等?到目前为止,我仅使用模型(ModelSerializers和ModelViews),但是我不认为这属于此类。

预先感谢...

1 个答案:

答案 0 :(得分:1)

您应该将此逻辑添加到视图中,因为视图用于实现这些逻辑。

实际上,您不想在这里使用Project name | company.no project1 | 3 project2 | 5 ,因为 serializers 方法的响应已采用序列化形式

除此之外,您提供的代码 不好 (显然不好)。应该是这样,

.get_all_permissions()

因为,您将通过 return request.user.get_all_permissions() 获得当前登录用户的实例,要获得其权限,您都需要调用request.user方法

示例

get_all_permissions()