1

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

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

问题是如果这个博客表有一个名为 writer 的外键,那么

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

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

4

1 回答 1

3

考虑到您需要按作者姓名过滤,而作者是 Blog 表中的外键,您可以使用:

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

在此处的 Django 文档中提到。

于 2013-05-30T04:04:52.530 回答