我有例如以下列表:从列表中进行查询与不同价值观
list1 = ['blue', 'red']
list2 = ['green', 'yellow', 'black']
我怎么能创建一个查询(使用PostgreSQL)在搜索所有值。
这将工作正常,但它只有两个值硬编码,因此不处理列表中不同数量的值。
entry.objects.annotate(search=SearchVector('colors')).filter(search=SearchQuery('blue') | SearchQuery('red'))
我尝试以下,以创建“SEARCH_QUERY”的字符串,并将其放置在我的查询:
for c in color:
search_string += "SearchQuery('" + c +"') | "
search_string = search_string[:-3]
这将导致以下search_strings
SearchQuery('blue') | SearchQuery('red')
SearchQuery('green') | SearchQuery('yellow') | SearchQuery('black')
如果我现在把这个字符串在我的查询中,它不会工作。
entry.objects.annotate(search=SearchVector('colors')).filter(search=search_string)
我很感谢任何帮助解决这个问题。
链接到Django的Postgres的搜索文档:https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/search/