【发布时间】: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
idarr = [1,2,3,4,5]
for i in range(len(idarr)):
upload.objects.filter(idarr[i])
我们不能一次性将 idarr 传递给查询
【问题讨论】:
标签: python django django-models django-views
我假设您正在尝试过滤Upload 的所有实例,其id 在列表idarr 中。如果是这种情况,那么您可以这样做:
Upload.objects.filter(id__in = idarr)
阅读documentation了解更多详情。
【讨论】:
这么几行错太多了……
在 Python 中,永远不要循环遍历 range(len(whatever))。只需for i in whatever。
假设 upload 是 Django 模型,您不能只将值传递给 filter - 您需要说明您要过滤的内容。大概是主键,所以你要.filter(pk=i)。
如果要过滤列表中的任何值,请使用__in:.filter(pk__in=idarr)。
【讨论】: