在基于 Class 的 ListView 中按用户 id 过滤 django

django filtering by user id in Class based ListView

我有一个基于 class 的 ListView,我想通过登录的 user_id 过滤其中的对象,因为项目模型有一个指向 settings.AUTH_USER_MODEL[=13= 的外键]

class ItemListView(LoginRequiredMixin, StaffRequiredMixin, ListView):
  model = Item
  template_name = "items/list_items.html"

在基于函数的视图中,我可以使用 request.user 执行此操作,但不能在基于通用 Class 的视图中执行此操作。关于如何最好地做到这一点有什么想法吗?

这是物品模型

class Item(models.Model):
  user = models.ForeignKey(settings.AUTH_USER_MODEL)
  description = models.CharField(max_length=300)

您可以重写 ListView 中的 get_queryset 函数并过滤 self.request.user

def get_queryset(self):
    return Item.objects.filter(user=self.request.user)