在Django中编辑某些字段的权限
我有两个不同的组可以访问Django Admin。允许他们查看模型中的所有字段,但不能编辑所有字段。例如,G1可以编辑“价格”和“ean”,而G2可以编辑“ean”和“详细信息” 我尝试了给定的版本,但我还想限制模型对象细节视图中的可编辑性 编辑:在Django中编辑某些字段的权限,django,Django,我有两个不同的组可以访问Django Admin。允许他们查看模型中的所有字段,但不能编辑所有字段。例如,G1可以编辑“价格”和“ean”,而G2可以编辑“ean”和“详细信息” 我尝试了给定的版本,但我还想限制模型对象细节视图中的可编辑性 编辑: 目前,我正试图弄清楚如何在ModelAdmin中访问请求用户,因为我已经在模型的Meta中注册了“特殊字段权限”,并试图根据组修改只读字段。知道如何获取用户吗?我想出的解决方案是覆盖get\u changelist和get\u form: def g
目前,我正试图弄清楚如何在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)
考虑把你尝试的东西添加到原来的问题中。所以,如果您提供更多的代码并要求我们进行调试,那么效果最好。我们不能为你提供代码。考虑到你已经尝试了到原来的问题。所以,如果您提供更多的代码并要求我们进行调试,那么效果最好。我们无法为您提供代码。