代码之家  ›  专栏  ›  技术社区  ›  tabuu9

类中未定义名称“self”?[已关闭]

  •  0
  • tabuu9  · 技术社区  · 8 年前

    我试图按所有者筛选查询集,但使用 self.request.user 结果是 NameError

    class PackageListView(LoginRequiredMixin, ListView, Self):
        model = Package
        user = self.request.user
        queryset = Package.objects.filter(owner=user).order_by('-received_date')
    

    我该如何解决这个问题?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Alasdair    8 年前

    这个 queryset 在加载类时定义。您无法访问 self.request.user 在这一点上。覆盖 get_queryset

    class PackageListView(LoginRequiredMixin, ListView):
        model = Package
    
        def get_queryset(self):
            user = self.request.user
            return Package.objects.filter(owner=user).order_by('-received_date')
    

    注释我已删除 Self class PackageListView 线路——看起来像是个错误。