Django admin:仅显示相应用户的记录

use*_*524 2 django django-models django-admin django-queryset

资源方面,我有一个简单的模型.我只有不到20个用户,而模型管理员用于记录请求.

问题是所有用户都可以在模型管理站点中看到所有记录.

是否可以将此行为更改为仅显示由同一用户创建的记录?

谢谢你的期待.

mim*_*imo 7

django doc有一个几乎完全符合你想要的例子:

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_queryset

我们的想法是get_queryset()在模型管理视图中覆盖该方法:

# admin.py
from django.contrib import admin

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

admin.site.register(YourModel, YourModelAdmin)
Run Code Online (Sandbox Code Playgroud)

您可以随意调整查询集过滤器以满足更具体的需求.