如何在django admin中显示与某个用户相关的记录

时间:2016-06-23 17:38:11

标签: python django django-admin user-permissions

我想为用户创建一种只能编辑/添加与登录用户相关的对象(公司对象)的方法。

目前,即使我创建了以下权限,所有登录用户都可以编辑所有公司:

Company | Can Add Company
Company | Can Change Company

我可以添加哪些内容来限制用户能够编辑/添加与登录用户相关的对象(公司对象)?

1 个答案:

答案 0 :(得分:2)

也许ModelAdmin.get_queryset()可以提供帮助。您可以使用它来对request.user对象执行检查。

class MyModelAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(MyModelAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(author=request.user)