【问题标题】:django filtering by user id in Class based ListViewdjango在基于类的ListView中按用户ID过滤
【发布时间】:2016-11-23 02:23:54
【问题描述】:

我有一个基于类的 ListView,我想通过登录的 user_id 过滤对象,因为 Item 模型具有 settings.AUTH_USER_MODEL 的外键

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

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

这是项目模型

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

【问题讨论】:

标签: django python-3.x django-class-based-views django-1.8 django-generic-views


【解决方案1】:

您可以覆盖 ListView 中的 get_queryset 函数并在 self.request.user 上进行过滤

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 2020-10-17
    • 2021-09-10
    相关资源
    最近更新 更多