2011-12-05 13 views
4

古いDjangoの本のチュートリアルに続いてDjangoを学ぼうとしていますが、現在アプリケーションの1つのフィールドに対してjquery UIオートコンプリートを実装しています。私は自分自身をより混乱させるためにのみ、この問題について多くの検索をしました。だからここに問題のコードがあります。DjangoとjQuery UIオートコンプリート土地で失われました

urls.py

`(r'^ajax/tag/autocomplete/$', ajax_tag_autocomplete),` 

tag_autocomplete.js

$(document).ready(function() { 
    $("#id_tags").autocomplete({ 
     source: "/ajax/tag/autocomplete/", 
    }); 
}); 

views.py

def ajax_tag_autocomplete(request): 
    if 'term' in request.GET: 
     tags = Tag.objects.filter(
      name__istartswith=request.GET['term'] 
     )[:10] 
     return HttpResponse(u'\n'.join(tag.name for tag in tags)) 
    return HttpResponse() 

だから私は私のアプリに私を参照して、このタグフィールドに文字を入力して起動したとき何も表示されず、リストも表示されません。しかし、ファイヤーバグはコードがクエリを実行していること、そして正しい結果を返すことを示しています。どのような単純なことが私は行方不明ですか?

+2

はあなたのスクリプトは、JSON配列を返す必要がありますし、私が見るようにインポートするため、省略されています'\ n'で区切られたタグ名を返します – Minras

+0

改行記号を含む文字列を返すことは、jQueryオートコンプリート。 –

答えて

6

Minrasがコメントで述べたように、ビューはJSON配列の文字列またはオブジェクトを返してデータを取り込む必要があります。

from django.utils import simplejson 

リターンJSON配列

return HttpResponse(simplejson.dumps([ tag.name for tag in tags ])) 
+0

チャームのように働いた。ありがとうございました! – neo4jay

0

あなたのデータベースに入れられているタグがありますか?次の結果はありますか?

Tag.objects.all() 

編集:実際には、代わりに検索キーとしての '用語' を使用しての、 'Q' を使用してみてください。