名称 'self' 未在 class 中定义?

Name 'self' not defined in class?

我正在尝试按所有者过滤查询集,但出于某种原因使用 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')

我该如何解决这个问题?

queryset是在加载class时定义的。您此时无法访问 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')

请注意,我已从 class PackageListView 行中删除了 Self -- 它看起来像一个错误。