django - 仅允许用户修改此用户创建的对象

标签 django django-admin

Django 中是否有办法通过仅允许编辑由该特定用户创建的对象来授予用户访问管理员权限的权限?

例如,我想授予用户创建其他用户的权限,但我不想让他们修改由 admin 或具有此权限的其他用户创建的用户。

我正在使用 django-admin,所以问题是在它的上下文中。

最佳答案

您应该覆盖 has_change_permission has_delete_permission 您的 ModelAdmin 上的方法类(class)。

例如

class MyModelAdmin(admin.ModelAdmin):

    def has_change_permission(self, request, obj=None):
        if obj is not None and obj.created_by != request.user:
            return False
        return True

    def has_delete_permission(self, request, obj=None):
        if obj is not None and obj.created_by != request.user:
            return False
        return True

关于django - 仅允许用户修改此用户创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47182559/

相关文章:

python - Docker Compose 和 Django 生成器语法错误

django - 搜索查询集的 __contains 过滤器有用吗?

django - 您能为管理员推荐一个好的Django文件管理器吗?

python - 使用 djcelery 时 Revoke、Terminate 和 Kill 有什么区别?

python - 添加链接到 django 管理页面

django-admin - 如何将页面另存为草稿

javascript - Django:在 Google map 的 javascript 中使用模板标签

python - 在django中使用id作为url有什么解决方案吗?

python - Django:每个外键返回一个过滤对象

python - Django中的通用一对一关系