rest-farmework权限设置

需求:会员可以有对物品的所有权限,游客只有看的权限。

实现: 通过观看rest-farmework源码。

创建类 UserProfile

class UserProfile(models.Model):

    user = models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True)

    role = models.CharField(choices=UserProfile_Role_Choices,default='admin',max_length=255)

    created_at = models.DateTimeField(auto_now_add=True)

    updated_at = models.DateTimeField(auto_now=True)

自定义增加字段 role 通过role的值判断权限

创建权限类:

class CustomPermissonClass(rest_framework.permissions.AllowAny):

    def has_permission(self, request, view):

        user_id = request.user.id

        role = UserProfile.objects.filter(user_id=user_id)[0].role

        if role == "test":

            if request.method in ['GET',]:  # 模仿rest farmework的权限设置 通过请求方式来控制权限

                return True

        else:

            return True

        return False

最后导入setting中。大工告成。

你可能感兴趣的:(rest-farmework权限设置)