Javascript 如何使用&;组合SearchQuery;Django postgres中从表单字段提交不确定多关键字的运算符
我有一个表单,它有两个字段(标题、技能),以逗号分隔关键字。我们希望使用Javascript 如何使用&;组合SearchQuery;Django postgres中从表单字段提交不确定多关键字的运算符,javascript,django,python-3.x,postgresql,Javascript,Django,Python 3.x,Postgresql,我有一个表单,它有两个字段(标题、技能),以逗号分隔关键字。我们希望使用SearchQuery和'&'操作符搜索所有技能。所以,如果我的search\u vector是SearchVector('job\u title',),假设用户正在寻找例如Java、python、.net之类的东西 作为一种技能,我们可以编写类似以下内容的查询: PostedJobReq.objects.annotate(search=search\u vector).filter(SearchQuery('java')&
SearchQuery
和'&'
操作符搜索所有技能。所以,如果我的search\u vector
是SearchVector('job\u title',)
,假设用户正在寻找例如Java、python、.net之类的东西
作为一种技能,我们可以编写类似以下内容的查询:
PostedJobReq.objects.annotate(search=search\u vector).filter(SearchQuery('java')&SearchQuery('python')&SearchQuery('.net'))
应该并且确实会给我们结果
但我的情况是,我们从Formfield
so获得了诸如Ex.Java、python、.net之类的关键字
搜索查询连接在一起呢。。
我成功地列出了所有搜索查询
,但无法使用代码中的&
模块将它们连接起来
views.py
complexadvsearch.html这是我的模板的外观和保存搜索表单的方式
这就是我的模特的样子,简单的一些头衔和一些主要技能
您可以组合SearchQuery()对象,如下所示:
if filters:
my_filter = SearchQuery(filters.pop())
for f in filters:
my_filter |= SearchQuery(f)
与Q()对象一样:
然后
Stuff.objects.filter(f)
这是Django ORM中非常酷的一部分
但是,如果所有条件语句都使用&
,则根本不需要使用Q
对象
只要做:
filter_list = [SearchQuery(i) for i in filters]
Stuff.objects.filter(*filter_list)
您可以像这样组合SearchQuery()对象:
if filters:
my_filter = SearchQuery(filters.pop())
for f in filters:
my_filter |= SearchQuery(f)
与Q()对象一样:
然后
Stuff.objects.filter(f)
这是Django ORM中非常酷的一部分
但是,如果所有条件语句都使用&
,则根本不需要使用Q
对象
只要做:
filter_list = [SearchQuery(i) for i in filters]
Stuff.objects.filter(*filter_list)
请编辑您的问题并将所有代码图片改为文本。请编辑您的问题并将所有代码图片改为文本。谢谢。它成功了!非常感谢你。它成功了!