Django行权限管理(Xadmin+rules级联效果)

行权限配置

xadmin中配置且不需要数据库支持,

安装并配置rules
pip安装:

pip install rules

配置settings.py

# settings.py
INSTALLED_APPS = (
    # ...
    'rules',
)
AUTHENTICATION_BACKENDS = (
    'rules.permissions.ObjectPermissionBackend',
    'django.contrib.auth.backends.ModelBackend',
)

配置models.py

# models.py
class CompanyUser(models.Model):
    users = models.OneToOneField(User, verbose_name='用户名', on_delete=User)
    is_admin = models.BooleanField('是否运营人员', default=False)
    category_code = models.ManyToManyField(user, verbose_name='可管理', max_length=20, blank=True, default='')
    #ForeignKey为单选,ManyToManyField为多选.

    def __str__(self):
        return str(self.users)

    class Meta:
        verbose_name = '管理账号'
        verbose_name_plural = verbose_name
        
        
        
class user(models.Model):
    title = models.CharField(max_length=50, verbose_name="文章标题")
    author = models.CharField(max_length=50, null=True, blank=True, verbose_name='文章作者')
    #category = models.ForeignKey(Category, verbose_name="所属类别", null=True, blank=True, on_delete=Category)(多选时启用)
    content = UEditorField(verbose_name="文章内容", imagePath='static/img/', filePath="static/img/", upload_settings={
   "imageMaxSize": 1204000}, default='')
    click_num = models.IntegerField(default=0, verbose_name="浏览量", )
    image = models.FileField(max_length=200, verbose_name="文章图片", null=True, blank=True, upload_to='static/img', default=None)
    add_time = models.DateField(default=datetime.now, verbose_name="添加时间")

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = '文章信息'
        verbose_name_plural = verbose_name

使用rule

在models的同级目录新增rules.py,配置该app相关的对象权限<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值