Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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 - Fatal编程技术网

在Django中编辑某些字段的权限

在Django中编辑某些字段的权限,django,Django,我有两个不同的组可以访问Django Admin。允许他们查看模型中的所有字段,但不能编辑所有字段。例如,G1可以编辑“价格”和“ean”,而G2可以编辑“ean”和“详细信息” 我尝试了给定的版本,但我还想限制模型对象细节视图中的可编辑性 编辑: 目前,我正试图弄清楚如何在ModelAdmin中访问请求用户,因为我已经在模型的Meta中注册了“特殊字段权限”,并试图根据组修改只读字段。知道如何获取用户吗?我想出的解决方案是覆盖get\u changelist和get\u form: def g

我有两个不同的组可以访问Django Admin。允许他们查看模型中的所有字段,但不能编辑所有字段。例如,G1可以编辑“价格”和“ean”,而G2可以编辑“ean”和“详细信息”

我尝试了给定的版本,但我还想限制模型对象细节视图中的可编辑性

编辑:
目前,我正试图弄清楚如何在ModelAdmin中访问请求用户,因为我已经在模型的Meta中注册了“特殊字段权限”,并试图根据组修改只读字段。知道如何获取用户吗?

我想出的解决方案是覆盖get\u changelist和get\u form:

def get_form(self, request, obj=None, **kwargs):
    fields = [$$$]  # Default fields for everyone
    if not has_group(request.user, $$$):  # Check if User IS NOT in group
        fields += [$$$]  # Add field that is associated with group to list
    self.readonly_fields = fields
    return super(YourAdminName, self).get_form(request, obj, **kwargs)

def get_changelist(self, request, **kwargs):
    fields = [$$$]  # Default fields for everyone
    if has_group(request.user, $$$):  # Check if User IS in group
        fields += [$$$]  # Add field that is associated with group to list
    self.list_editable = fields
    return super(YourAdminName, self).get_changelist(request, **kwargs)

我提出的解决方案是覆盖get_变更列表和get_表单:

def get_form(self, request, obj=None, **kwargs):
    fields = [$$$]  # Default fields for everyone
    if not has_group(request.user, $$$):  # Check if User IS NOT in group
        fields += [$$$]  # Add field that is associated with group to list
    self.readonly_fields = fields
    return super(YourAdminName, self).get_form(request, obj, **kwargs)

def get_changelist(self, request, **kwargs):
    fields = [$$$]  # Default fields for everyone
    if has_group(request.user, $$$):  # Check if User IS in group
        fields += [$$$]  # Add field that is associated with group to list
    self.list_editable = fields
    return super(YourAdminName, self).get_changelist(request, **kwargs)

考虑把你尝试的东西添加到原来的问题中。所以,如果您提供更多的代码并要求我们进行调试,那么效果最好。我们不能为你提供代码。考虑到你已经尝试了到原来的问题。所以,如果您提供更多的代码并要求我们进行调试,那么效果最好。我们无法为您提供代码。