过滤功能 - 如何将外键对象属性作为关键字传递

时间:2013-05-30 03:56:30

标签: python django filter

我目前正在Django中实现搜索功能,并计划使用与过滤器相关的功能。在阅读了关于django文档的一些文档之后,在我看来,关键字可以只是varchar类型,在下面的例子中 - 'name'提交

inner_qs = Blog.objects.filter(name__icontains='Cheddar')

问题是,如果此Blog表有一个名为writer的外键,那么

inner_qs = Blog.objects.filter(writer.name__icontains='John')

是不允许的,显示语法错误,关键字不能是表达式。但我真的想把外键的某些字段作为搜索关键字(例如writer.name),有没有办法这样做?非常感谢你

1 个答案:

答案 0 :(得分:3)

考虑到您需要按编写者的名称进行过滤,而编写者是Blog表中的外键,您可以使用:

inner_qs = Blog.objects.filter(writer__name__icontains='John')

在Django documentation here中提及。