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

how to show records related to a certain user in django admin

我想创建一种方法,让用户只能 edit/add 与登录用户相关的对象(公司对象)。

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

Company | Can Add Company
Company | Can Change Company

我可以向 Admin.py 添加什么来限制用户能够 edit/add 与登录用户相关的对象(公司对象)?

也许 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)