【问题标题】:how to show records related to a certain user in django admin如何在 django admin 中显示与某个用户相关的记录
【发布时间】:2016-10-26 04:27:34
【问题描述】:

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

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

Company | Can Add Company
Company | Can Change Company

我可以在 Admin.py 中添加什么来约束用户能够编辑/添加与登录用户相关的对象(公司对象)?

【问题讨论】:

    标签: python django django-admin user-permissions


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 2023-04-04
      • 1970-01-01
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多