2009-04-09 132 views
0

我從here中得到了一些例子中的以下代碼,但它並不適用於我的django應用程序。Django中的JQuery自動完成功能無法正常工作

在我templete我有這個功能:

$(函數(){ setAutoComplete( 「標籤」, 「tagResults」, 「?/ taglookup /查詢=」); });

,並在我的網址,我有以下行

(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') 

當我嘗試在模板上我的「標籤」字段中輸入任何內容,螢火蟲給我以下錯誤;

GET http://127.0.0.1:8000/taglookup/?query=test 404 NOT FOUND jQuery的1.3.2.js(線3633)

任何想法我在哪裏消磨?

迦特

回答

3

從404錯誤你螢火看到它看起來像請求發生像您期望的網址告訴你的自動完成調用。我會仔細檢查你的urls.py文件,以確保在正則表達式行前沒有隱含的前綴。意思是,是否在基礎項目目錄中或在主要urls.py文件中包含的應用程序目錄中有url?

如果包含,你可能有這樣一行在你的基地urls.py文件:

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

所以那麼你的jQuery函數應該閱讀:

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

您還可以通過在瀏覽器中輸入該地址來驗證url模式是否正常工作,這樣您就可以確定問題是出在url還是jQuery上。

相關問題