1

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

该用户只能在表格中看到注册、更新和删除他插入的帖子,而不能查看其他用户输入的帖子,所有这些都在 Admin Django 中,除非它具有超级用户身份。

我试图在我的“NoticiaAdmin(admin.ModelAdmin)”类中创建“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 

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

4

1 回答 1

3

您可能需要调用类super()中的方法ModelAdmin

也许尝试这样的事情,

    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)
于 2017-07-02T16:43:37.593 回答