defget_queryset(self, request): """只显示当前用户名下的评论""" # 如果指定了ordering,get_queryset中也需要重写 result = super().get_queryset(request).filter(shopper=request.user) ordering = self.get_ordering(request) if ordering: result = result.order_by(*ordering) return result
注:如果admin中有ordering,字段我们需要对查询机进行排序。
get_queryset()源码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
defget_queryset(self, request): """ Return a QuerySet of all model instances that can be edited by the admin site. This is used by changelist_view. """ # 获取默认管理员,一般为超级管理员的针对该模型的所有查询集 qs = self.model._default_manager.get_queryset() # TODO: this should be handled by some parameter to the ChangeList. # 针对默认管理者即超级管理员的数据进行排序 ordering = self.get_ordering(request) # 如果ordering字段不为None的话,进行排序 if ordering: qs = qs.order_by(*ordering) return qs