Javascript typeahead.js仅适用于某些字符串
我有一个关于电影(西班牙语标题)的Django项目,我用typeahead.js实现了一个自动完成功能,但它似乎只适用于某些字符串,我不知道为什么 例如,如果我输入“Los”,会出现一些电影,但如果我输入“El”,则在应该出现的时候不会出现任何电影。我知道它应该工作,因为它收到的JSON有一些应该显示的结果 下面是它使用的JavaScript和Python代码:Javascript typeahead.js仅适用于某些字符串,javascript,python,django,typeahead.js,Javascript,Python,Django,Typeahead.js,我有一个关于电影(西班牙语标题)的Django项目,我用typeahead.js实现了一个自动完成功能,但它似乎只适用于某些字符串,我不知道为什么 例如,如果我输入“Los”,会出现一些电影,但如果我输入“El”,则在应该出现的时候不会出现任何电影。我知道它应该工作,因为它收到的JSON有一些应该显示的结果 下面是它使用的JavaScript和Python代码: <script type="text/javascript"> $(document).ready(function(
<script type="text/javascript">
$(document).ready(function(){
var queryMovies = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 20,
rateLimitWait: 800,
remote: {url:'/get_movie/?q=%QUERY', wildcard: '%QUERY'}
});
queryMovies.initialize();
$('#remote .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 2,
},
{
name: 'queryMovies',
display: 'value',
source: queryMovies.ttAdapter(),
templates: {
empty: [
'<div class="empty-message">',
'No hay resultados con la consulta',
'</div>'
].join('\n'),
suggestion: function(data) {
var url = "{% url 'movie' '00000' %}"
url = url.replace('00000', data.id);
return '<div><p><a href="' + url + '">' + data.title + '</a></p></div>';
}
}
});
});
</script>
def get_movie(request):
results = []
q = request.GET['q']
movies = Movie.objects.filter(title__icontains = q)
results = [ {'id': movie.id, 'title': movie.title} for movie in movies ]
data = json.dumps(results)
return HttpResponse(data, content_type = 'application/json')
$(文档).ready(函数(){
var queryMovies=新猎犬({
datumTokenizer:Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer:猎犬,标记,空白,
限额:20,
等一下:800,
远程:{url:'/get\u movie/?q=%QUERY',通配符:'%QUERY'}
});
queryMovies.initialize();
$(“#remote.typeahead”).typeahead({
提示:没错,
推荐理由:没错,
最小长度:2,
},
{
名称:“queryMovies”,
显示:“值”,
来源:queryMovies.ttAdapter(),
模板:{
空的:[
'',
“没什么结果,我要去领事馆”,
''
].join('\n'),
建议:功能(数据){
var url=“{%url”电影“”00000%}”
url=url.replace('00000',data.id);
返回“”;
}
}
});
});
def get_电影(请求):
结果=[]
q=请求。获取['q']
movies=Movie.objects.filter(title\u icontains=q)
结果=[{'id':movie.id,'title':movie.title}用于电影中的电影]
data=json.dumps(结果)
返回HttpResponse(数据,内容类型='application/json')
我希望有人能帮上忙。你确定不是要花一段时间才能回来吗?“el”的组合可能非常常见,取决于您使用的“contains”功能是否可以搜索任何分别包含“e”和/或“l”的标题。这不会花费太长时间,因为数据库目前只有大约10部电影需要测试,我上面解释的示例会立即出现。您能提供一些吗样本数据?