Javascript typeahead.js仅适用于某些字符串

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(

我有一个关于电影(西班牙语标题)的Django项目,我用typeahead.js实现了一个自动完成功能,但它似乎只适用于某些字符串,我不知道为什么

例如,如果我输入“Los”,会出现一些电影,但如果我输入“El”,则在应该出现的时候不会出现任何电影。我知道它应该工作,因为它收到的JSON有一些应该显示的结果

下面是它使用的JavaScript和Python代码:

<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部电影需要测试,我上面解释的示例会立即出现。您能提供一些吗样本数据?