【问题标题】:Trouble with Django + Bootstrap3 + typeahead.js remote fetchingDjango + Bootstrap3 + typeahead.js 远程获取问题
【发布时间】:2013-10-05 06:40:11
【问题描述】:

我是 django 和 bootstrap3 的新手,我一直在尝试通过 twitter 实现 typeahead。

我的 urls.py

url(r'^name_autocomplete/?q=$', 'home.views.name_autocomplete'),

我的脚本:

<script type="text/javascript">
$(document).ready(function() {
  $("#navPersonSearch").typeahead({
    name: 'people',
    remote: 'name_autocomplete/?q=%QUERY'
  });
});

我的看法

def name_autocomplete(request):
    query = request.GET.get('query','')
    if(len(query) > 0):
        print "hello"
        results = Person.objects.filter(short__istartswith=query)
        result_list = []
        for item in results:
            result_list.append(item.short)
    else:
        result_list = []

    response_text = json.dumps(result_list, separators=(',',':'))
    return HttpResponse(response_text, content_type="application/json")

请求似乎是从控制台输出中通过的:

[05/Oct/2013 01:34:12] "GET / HTTP/1.1" 200 2007
[05/Oct/2013 01:34:12] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0
[05/Oct/2013 01:34:12] "GET /static/bootstrap/css/typeahead.js-bootstrap.css HTTP/1.1" 304 0
[05/Oct/2013 01:34:12] "GET /static/bootstrap/js/typeahead.js HTTP/1.1" 304 0
[05/Oct/2013 01:34:15] "GET /name_autocomplete/?q=J HTTP/1.1" 200 2
[05/Oct/2013 01:34:30] "GET /name_autocomplete/?q=Jac HTTP/1.1" 200 2

但是预输入不起作用。

【问题讨论】:

    标签: django twitter-bootstrap django-views twitter-bootstrap-3 typeahead.js


    【解决方案1】:

    如下替换urlpattern(你不应该指定查询字符串部分):

    url(r'^name_autocomplete/$', 'home.views.name_autocomplete'),
    

    在视图中,您得到query,而javascript 发送查询字符串为q=;所以替换以下行:

    query = request.GET.get('query','')
    

    query = request.GET.get('q','')
    

    【讨论】:

    • 是的,这使得预输入工作(虽然它有点慢),但我无法提交我的表单。
    • @user2027556,我认为它值得另一个问题。
    • 嗯,注释掉脚本可以让我很好地提交它。
    猜你喜欢
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多