Django中的JQuery Autocomplete无法正常工作

时间:2009-04-09 05:54:26

标签: jquery django

我从here获得的一些示例中有以下代码,但它不适用于我的django应用程序。

在我的模板上我有这个功能:

$(函数(){       setAutoComplete(“tags”,“tagResults”,“/ taglookup /?query =”);     });

在我的网址上我有以下内容

(r'^taglookup/$', 'twine.twineapp.views.tag_lookup'),

我的观点如下:

def tag_lookup(request):
    # Default return list
    results = []
    if request.method == "GET":
        if request.GET.has_key(u'query'):
            value = request.GET[u'query']
            # Ignore queries shorter than length 3
            if len(value) > 2:
                #model_results = Book.objects.filter(name__icontains=value)
                TaggedItem = Tag.objects.get_by_model(Question, Tag.objects.filter(name__in=[value]))
                results = [ x.name for x in TaggedItem]
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/json')

当我尝试在模板中的“标签”字段上输入任何内容时,firebug会给我以下错误;

GET http://127.0.0.1:8000/taglookup/?query=test 404找不到JQuery-1.3.2.js(第3633行)

任何想法在哪里?

加特

1 个答案:

答案 0 :(得分:3)

从您在firebug中看到的404错误看起来请求正在发生,因为您希望您告诉自动填充调用的网址。我会仔细检查你的urls.py文件,以确保在正则表达式行前面没有隐式前缀。意思是,在urls.py主文件中包含基础项目目录或app dir中的url行吗?

如果包含它,您的基本urls.py文件中可能会有这样的行:

(r'^appname/', include('projectname.appname.urls')),

那么你的jQuery函数应该是:

$(function(){ setAutoComplete("tags", "tagResults", "/appname/taglookup/?query="); });

您还可以通过在浏览器中键入该地址来验证网址格式是否有效,这样就可以确定问题是否与url或jQuery有关。