Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Python 如何在django admin中添加对象级权限_Python_Django_Python 3.x - Fatal编程技术网

Python 如何在django admin中添加对象级权限

Python 如何在django admin中添加对象级权限,python,django,python-3.x,Python,Django,Python 3.x,我有一个建筑模型,其中我有一个字段注释,它与一般注释有一般关系。在建筑中管理员添加了一般注释作为内联线。现在,我希望GeneralNotes对于作为generalnote所有者的用户是可编辑的 类构建(timestamesedmodel): name=models.CharField(unique=True,max_length=100,verbose_name=(“建筑名称”),help_text=(“这是您的建筑名称”) ) 注释=一般关系(一般注释) 类GeneralNote(TimeS

我有一个
建筑
模型,其中我有一个字段
注释
,它与
一般注释
一般关系。在
建筑中
管理员添加了
一般注释
作为内联线。现在,我希望
GeneralNotes
对于作为generalnote所有者的用户是可编辑的

类构建(timestamesedmodel):
name=models.CharField(unique=True,max_length=100,verbose_name=(“建筑名称”),help_text=(“这是您的建筑名称”)
) 
注释=一般关系(一般注释)
类GeneralNote(TimeStampedModel):
owner=型号。ForeignKey(
公司员工,
空白=真,
空=真,
#相关的\u name='noteOwner',
on_delete=models.SET_NULL,
详细的\u name=“注释所有者”,
)                                                                       
content=models.TextField(最大长度=400,null=True)
操作的日期=models.DateField(null=True)
content\u type=models.ForeignKey(ContentType,on\u delete=models.CASCADE)
object_id=models.PositiveIntegerField()
附加到=GenericForeignKey()
admin.py
中:

class BuildingAdmin(ImportMixin,generalnotesincludeadmin):
inlines=(GeneralNoteInLine,)
类GeneralNotesIncludedAdmin(CoreBaseAdmin):
def保存表单集(自我、请求、表单、表单集、更改):
实例=formset.save(提交=False)
例如:
如果不是instance.owner:
instance.owner=request.user.companyemployee
save()实例
super().保存表单集(请求、表单、表单集、更改)
类CoreBaseAdmin(admin.ModelAdmin):
将_保存在_顶部=真
您可以使用和使用guardian。

您可以使用以下方法:

您还可以将这些添加到:

class GeneralNotesIncludedAdmin(CoreBaseAdmin):
    def has_change_permission(self, request, obj=None):
        if obj is None:
            return True
        return obj.owner == request.user.companyemployee
class GeneralNoteInLine(InlineModelAdmin):
    def has_change_permission(self, request, obj=None):
        if obj is None:
            return True
        return obj.owner == request.user.companyemployee