使用 Django / Python 为 Typeahead / Bloodhound 提供远程 JSON 数据
Posted
技术标签:
【中文标题】使用 Django / Python 为 Typeahead / Bloodhound 提供远程 JSON 数据【英文标题】:Supplying remote JSON data for Typeahead / Bloodhound with Django / Python 【发布时间】:2021-10-25 11:00:57 【问题描述】:我正在尝试复制 this Typeahead remote example 的功能,但我不知道如何以 Typeahead / Bloodhound 想要的方式提供数据,也不知道 datumTokenizer
或 queryTokenizer
的用途。
在 Python / Django views.py 我有:
nouns = ['apple', 'banana', 'pear']
return JsonResponse('results': nouns)
以如下方式到达网站:
"results": ["apple", "banana", "pear"]
然而for 'kings' the example returns:
["year": "1949","value":"All the Kings Men","tokens":["All","the","Kings","Men"]]
需要我们以这种格式返回它吗?如果是这样,怎么做?我们如何对示例进行简单的复制?
【问题讨论】:
【参考方案1】:想通了:实际使用return HttpResponse(nouns)
,或return JsonResponse(nouns, safe=False)
。
如果出于安全考虑,请将其作为字典发送:
noun_dicts = ['suggestion':x for x in nouns]
return JsonResponse('results':noun_dicts)
然后在JS中解析dict。
【讨论】:
以上是关于使用 Django / Python 为 Typeahead / Bloodhound 提供远程 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章
python Django - 将SQL查询转换为ORM查询
Django 提示:Object of type ‘QuerySet‘ is not JSON serializable