我想搜索句子中的每个单词并将其放入result['post']
词典
当然,这段代码只会寻找最后一个查询
queries = querystring.split()
for query in queries:
results['posts'] = Post.objects.filter(text__icontains=query)
我尝试了
append
,extend
和很多其他方法,但是没有按预期工作。编辑更新:
我也试过
count = {}
results = {}
post_results = []
queries = querystring.split()
for query in queries:
post_results.append(Post.objects.filter(text__icontains=query))
results['posts'] = post_results
count['posts'] = results['posts'].count()
但这会导致另一个错误
count() takes exactly one argument (0 given)
Error Image
同样,
Post.objects.filter(text__icontains=query)
这行返回一个查询集值,而Queryset type of django似乎没有附加值。是否有自己的附加类功能?如果是这样,那不会改变它的queryset类型为list。使用temp
变量(如post_results = []
)更改为列表。我们可以将该列表改回queryset吗?如果可以的话,那将行得通。
最佳答案
我猜想原因是每个循环中results['posts']
值都被覆盖。
怎么样像这样更改代码
queries = querystring.split()
tmp = []
for query in queries:
tmp.append(Post.objects.filter(text__icontains=query))
results['posts'] = tmp
关于python - Django追加<queryset>以使用过滤器搜索句子中的每个单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48841782/