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

时间:2017-07-02 11:49:00

标签: django django-admin django-queryset django-admin-filters django-admin-tools

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

此用户只能在表格中看到注册,更新和删除他插入的帖子,并且无法查看其他用户输入的帖子,全部在Admin Django中,除非它具有超级用户状态。

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

这是我的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 

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

1 个答案:

答案 0 :(得分:0)

您可能需要在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)