python - 在 django 中手动提供权限
问题描述
我正在尝试创建自定义权限,对于每个用户(管理员),我们都有多个权限,例如(delete,creaet,post,update,view a specific part of the app
),每个用户都有多个权限
class UserPermission(models.Model):
type_of_permission = models.CharField(max_length=30,unique=True)
active = models.BooleanField(default=True)
def __str__(self):
return self.type_of_permission
class Meta:
db_table = 'user_permission'
class UserAccount(AbstractBaseUser):
username = models.CharField(max_length=80,unique=True)
active = models.BooleanField(default=True)
permis = models.ManyToManyField(UserPermission)
class Post(models.Model):
admin = models.ForeignKey(UserAccount,on_delete=models.CASCADE)
title= models.CharField(max_length=80)
例如我们有type_of_permission = create new post , active = True
type_of_permission = delete posts , active = False
等等,并且用户想要删除帖子,我想过滤用户if request.user has delete posts active = False
然后不允许该用户删除对象
def delete_posts(request,id=id):
obj = get_object_or_404(Post,id=id)
#how to filter if the requested user have permission to delete post
obj.delete()
#if not have permission then
messages.error(request,'you dont have permission to delete')
请问可以手动定义权限吗?
解决方案
推荐阅读
- node.js - nodejs - 如果一个进程调用退出,分叉进程会被杀死?
- rpm - 创建一个rpm包来安装httpd、php、python3并通过替换配置文件来配置它们
- python-2.7 - Pycharm-community 的 Python2.7 中没有突出显示函数
- python - 如何更改 Matplotlib 标签中的文本对齐方式?
- git - Git子模块初始化到HEAD而不是特定提交
- xamarin.forms - 如何使用 Httpclient 上传图片?
- kubernetes-helm - 我们可以为 Zalenium Hub 创建一个副本集吗
- c - 为什么将 char 数组转换为整数数组时字节序列会发生变化?
- android - Android Studio:为每个变体提供自己的图标
- javascript - 用文本进行三态切换