【问题标题】:How to allow a user to view data that is added only by him Django Admin如何允许用户查看仅由他添加的数据 Django Admin
【发布时间】:2017-12-05 19:57:56
【问题描述】:

我有一个 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 

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 非常感谢我的朋友,太棒了,完全按照我的尝试工作。非常感谢!
    • 您能帮我一个忙,然后将答案标记为选中吗?
    • 是的,我想看看我在哪里做这个,因为这是我第一次来“StackOverflow”
    • 这可能会有所帮助.. meta.stackexchange.com/questions/5234/…
    • 我想我明白了。
    猜你喜欢
    • 1970-01-01
    • 2021-05-14
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    相关资源
    最近更新 更多