如何允许用户查看仅由他添加的数据 Django Admin

How to allow a user to view data that is added only by him Django Admin

我有一个 Django 应用程序,具有受限访问权限的用户在 Django 管理中注册了一个新的 post。

该用户只能在table中看到自己输入的post注册、更新和删除,不能查看其他用户输入的post,都在 Admin Django 中,除非它具有超级用户身份。

我试图在我的 "NoticiaAdmin (admin.ModelAdmin)" class 中创建 "def queryset",不幸的是我不知道我做错了什么,我无法解决这个问题。

这是我的查询集函数...

def queryset(self, request): 
    if request.user.is_superuser: 
        qs = self.model._default_manager.get_query_set() 
    else: 
        qs = self.model._default_manager.get_query_set().filter(user=request.user) 
    ordering = self.ordering or () 
    if ordering: 
        qs = qs.order_by(*ordering)     
    return qs 

我希望我已经澄清了我对这个问题的疑惑,我将非常感谢任何能帮助我的人。

您可能需要在 ModelAdminclass 中的方法上调用 super()

也许试试这样的方法,

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