【问题标题】:querying a array in django在 Django 中查询数组
【发布时间】:2010-08-14 08:45:38
【问题描述】:
      idarr = [1,2,3,4,5]
      for i in  range(len(idarr)):
          upload.objects.filter(idarr[i])

我们不能一次性将 idarr 传递给查询

【问题讨论】:

    标签: python django django-models django-views


    【解决方案1】:

    我假设您正在尝试过滤Upload 的所有实例,其id 在列表idarr 中。如果是这种情况,那么您可以这样做:

    Upload.objects.filter(id__in = idarr)
    

    阅读documentation了解更多详情。

    【讨论】:

      【解决方案2】:

      这么几行错太多了……

      1. 在 Python 中,永远不要循环遍历 range(len(whatever))。只需for i in whatever

      2. 假设 upload 是 Django 模型,您不能只将值传递给 filter - 您需要说明您要过滤的内容。大概是主键,所以你要.filter(pk=i)

      3. 如果要过滤列表中的任何值,请使用__in.filter(pk__in=idarr)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-08
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多