Django管理员组权限和访问权限 [英] Django admin groups permissions and access

查看:77
本文介绍了Django管理员组权限和访问权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种自定义Django管理的方法,以支持基于用户组的权限和数据.

例如,我刚刚创建了Developers1,Developers2组.现在,我还创建了带有AdminModel的Transaction模型,以指定如何列出数据.

Transacton模型:

  class Transaction(models.Model):income_period_choices =((('Weekly','Weekly'),('Fortnightly','半月刊'))chp_reference = models.CharField(max_length = 50,unique = True)rent_effective_date = models.DateField(null = True,空白= True)income_period = models.CharField(max_length = 11,choices = income_period_choices,null =是,空白=真)property_market_rent = models.DecimalField(help_text ='Weekly',max_digits = 7,小数位数= 2,null =是,空白=真)* group = models.ForeignKey(Group,on_delete = models.CASCADE) 

我不确定* group字段是我应该删除它还是应该创建Charfield(不是django.contrib.auth.group模型的外键)?

这是管理员事务:

  @ admin.register(事务)类TransactionAdmin(admin.ModelAdmin):def save_model(自我,请求,obj,表单,更改):obj.user = request.usersuper().save_model(request,obj,form,change)def get_queryset(self,request):qs = super().get_queryset(请求)#for s in qs:如果request.user.is_superuser:返回qs返回qs.filter(group_name__in = Group)search_fields = ['chp_reference','familymember__name']内联= [FamilyGroupInline,FamilyMemberInline] 

我想做的是我希望每个组只能访问自己的交易模型,并且每个组只能添加,删除,更新和查看自己的交易(例如,developers1组无法访问developers2交易,反之亦然)

任何想法都应得到赞赏

谢谢!:)

解决方案

为此,您可以 解决方案

To do that you can override the get_queryset method to only return the objects that are relevant to these users (based on their permissions, groups or any condition you want).

这篇关于Django管理员组权限和访问权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆