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

时间:2015-09-14 20:00:49

标签: javascript python django typeahead.js

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

例如,如果我输入" Los"有几部电影出现了,但是如果我输入了#34; 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')

我希望有人可以提供帮助。

0 个答案:

没有答案