Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django管理组权限和访问权限_Django_Model_Admin - Fatal编程技术网

Django管理组权限和访问权限

Django管理组权限和访问权限,django,model,admin,Django,Model,Admin,我正在寻找一种自定义Django管理的方法,以支持基于用户组的权限和数据 例如,我刚刚创建了Developers1、Developers2组。。现在,我还创建了事务模型,使用AdminModel指定如何列出数据 交易模式: class Transaction(models.Model): income_period_choices = (('Weekly', 'Weekly'), ('Fortnightly',

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

例如,我刚刚创建了Developers1、Developers2组。。现在,我还创建了事务模型,使用AdminModel指定如何列出数据

交易模式:

class Transaction(models.Model):
income_period_choices = (('Weekly', 'Weekly'), ('Fortnightly',
                                                'Fortnightly'))
chp_reference = models.CharField(max_length=50, unique=True)
rent_effective_date = models.DateField(null=True, blank=True)
income_period = models.CharField(max_length=11,
                                choices=income_period_choices,
                                null=True,
                                blank=True)
property_market_rent = models.DecimalField(help_text='Weekly',
                                        max_digits=7,
                                        decimal_places=2,
                                        null=True,
                                        blank=True)
*group = models.ForeignKey(Group, on_delete=models.CASCADE)
我不确定*group字段,我应该删除它,还是创建Charfield,它不是django.contrib.auth.group模型的外键

这是管理事务:

 @admin.register(Transaction)
 class TransactionAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.user = request.user
        super().save_model(request, obj, form, change)

def get_queryset(self, request):
    qs = super().get_queryset(request)
    # for s in qs:
    if request.user.is_superuser:
        return qs
    return qs.filter(group_name__in=Group)

search_fields = ['chp_reference','familymember__name']
inlines = [FamilyGroupInline,FamilyMemberInline]
我想做的是希望每个组只访问自己的事务模型,每个组只能添加、删除、更新和查看自己的事务(例如developer1组不能访问developer2事务,反之亦然)

任何想法都值得赞赏


谢谢!:)

要做到这一点,您可以只返回与这些用户相关的对象(基于他们的权限、组或您想要的任何条件)。

现在我是否应该创建一个新模型“组”,以便进行筛选?或者已经有了一个?我已经搜索了很长时间了,现在你可以使用django的内置
:我已经更新了这个问题,你能给我提供一个更具体的方法来过滤qs,以便获得每个组的qs吗