如何在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)
我想创建一种方法,让用户只能 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)