如何仅使用React和DRF向员工用户显示内容

时间:2019-09-18 12:18:25

标签: reactjs django-rest-framework

我有一个博客创建视图,管理员或工作人员用户只能创建博客,该视图不受普通用户的限制,并且运行良好。

目标:现在,我想仅在管理员或工作人员用户从其帐户登录时才向管理员显示网站上的创建博客按钮。

我在加载网站的一开始就有用户详细信息视图,如何响应该用户是管理员用户还是普通用户还是普通用户?

我在Redux的前端使用React。

到目前为止我所做的

path('user/', UserDetailsView.as_view(), name='rest_user_details'),

class UserDetailsView(RetrieveUpdateAPIView):

    serializer_class = UserDetailsSerializer
    permission_classes = (IsAuthenticated,)

    def get_object(self):
        return self.request.user

    def get_queryset(self):

        return get_user_model().objects.none()

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是覆盖您的UserDetailsSerializer并添加一个类似is_admin_user的字段。

我们将使用Django-Restframework序列化程序中的serializerMethodField

class UserDetailsSerializer(serializers.ModelSerializer):
    is_admin_user = serializers.SerializerMethodField()

    class Meta:
        model = User
        fields = ('is_admin_user',) // And all other necessary fields

    def get_is_admin_user(self, obj):
        return obj.is_staff # this will return true for self.is_staff user 

我们的主要目标是将一些有关用户角色的信息传递给前端,以便从这些信息中我们可以决定是否显示“创建博客”按钮。