我有一个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
我希望我澄清了对这个问题的疑虑,我将非常感谢能帮助我的人。
答案 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)