在Django中按ID过滤多个数据

时间:2012-03-22 12:58:58

标签: python django

id_tuple= (1,3,4,5,7,9)
students =Students.objects.filter(id in id_tuple)

for s in students :
s.name='_new_name_'

此代码出错! 我怎么解决? 基于上面的元组我希望得到所有学生!

如何做到

3 个答案:

答案 0 :(得分:10)

正如stepnak所说,在查询中进行正确的语法是filter(id__in=id_tuple)

Django文档将是获取此信息的绝佳资源。 https://docs.djangoproject.com/en/dev/ref/models/querysets/#in

答案 1 :(得分:2)

您可以使用IN字段查找作为@stepank建议。

更多解释:Django ORM使用特殊语法将python代码转换为SQL语句。只需将bool(如果定义id)值传递给filter,就不是有效的语法。

如果您是Django的新手,可以从here开始。您也可以参考完整的reference。在询问之前参考文档是一种很好的做法。 :)

答案 2 :(得分:0)

学生= Students.objects.filter(id__in = id_tuple)