我想搜索句子中的每个单词并将其放入 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() 仅接受一个参数(给定 0)
此外,Post.objects.filter(text__icontains=query)
此行返回一个查询集值和 Queryset type of django好像没有追加。是否有自己的附加功能?如果是这样,则不会将其查询集类型更改为列表。使用 temp
变量(如 post_results = []
)更改列表。
我们可以将该列表更改回查询集吗?如果我们可以的话那就行了。
最佳答案
我猜原因是 results['posts']
值在每个 for 循环中都会被覆盖..
更改代码怎么样
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/