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

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

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

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

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

这是项目模型
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)

关于django 在基于类的 ListView 中按用户 id 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38471260/

相关文章:

python - 基于 Django 类的 View 获取发布数据并发送响应

Django 用户 HiddenInput 与使用基于类的 View 直接保存在 View 中

json - Django Rest框架: getting lists from query_params without request. getlist

django - 使用 Nginx 作为代理服务器,使用 django 作为后端时如何正确处理重定向响应

python-3.x - 对于 Python 3.8 Azure 数据湖 Gen 2,如何检查文件系统上是否存在文件?

django - 你如何在 Django 中使用 get_context_data 和 TemplateView

python - 在 django 应用程序中每个用户只允许一个并发登录

python - Django Channels 或 Tornado 用于基于套接字的连接

python - 为什么这不能将我连接到我的服务器?

python-3.x - [::-1] 在 numpy 中实际上做了什么?