【问题标题】:Autocomplete with Django, jQuery and google app engine使用 Django、jQuery 和谷歌应用引擎自动完成
【发布时间】:2011-05-24 15:10:19
【问题描述】:

我是 Django 和 jQuery 的新手,但我有很多 python 经验。我基本上是在尝试编写一个 HTML 表单,现在只有一个文本框,当你输入它时,它会显示自动完成选项。这将用于寻找餐馆,我打算为此使用 Yelp API。有人可以指出我如何做到这一点的教程的方向 - 特别是关于 Django / HTML / jQuery 而不是如何使用 Yelp API?有什么我应该阅读的教程吗?我发现的所有教程都是从 Django 数据模型构建表单的非常基础的教程。..

谢谢!

【问题讨论】:

    标签: jquery django autocomplete


    【解决方案1】:

    Tomlog 的代码将在客户端上运行。但这个问题特别需要服务器端的 google-app-engine。

    要实现服务器端 GAE 组件,您需要使用正则表达式(或至少是一些淡化的变体)搜索字符串。 GAE 目前没有为数据存储提供这样的功能;字符串只能搜索相等性。换句话说,如果您有一个包含“apple”和“orange”的大型数据存储,则无法自动完成“app”或“ora”。

    有人抱怨说 google 将添加此类功能,但我不会指望它很快。因此,如果您想在大型数据集上自动完成,GAE 还不适合您。

    (您当然可以在 GAE 之上构建自己的索引系统,但我猜这是不可能的)

    【讨论】:

      【解决方案2】:

      这是您可以使用的,以避免重新发明轮子。我用它来自动完成外键关系:

      django-smart-selects

      【讨论】:

        【解决方案3】:

        您可以很容易地在客户端使用Autocomplete 小部件(它是jQueryUI 的一部分)完成此操作。 因此,在您的情况下,您会执行以下操作:

        <input id="restaurantSearch" />
        
        <script>
        $(document.ready(function() {
          $('#restaurantSearch').autocomplete({
                source: function(req, add){
                  $.getJSON('http://api.yelp.com/v2/search?term=?', req, function(data) {  
        
                  var restaurantSuggestions = [];
        
                  $.each(data.businesses, function(i, business){  
                    restaurantSuggestions.push(business.name);  
                  });
        
                  add(restaurantSuggestions);  
                })
        });
        </script>
        

        【讨论】:

          【解决方案4】:

          我个人更喜欢django ajax selects,但同意上述不要重新发明轮子

          【讨论】:

            猜你喜欢
            • 2012-09-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-21
            • 1970-01-01
            • 1970-01-01
            • 2011-06-01
            • 1970-01-01
            相关资源
            最近更新 更多