2017-10-22 10 views
2

いくつかの事前検索を行うdjangoの残りのフレームワークを使用してAPIを作成したい、食料品のリストは、データベースに保存され、ユーザーは食料品のリストを作成したいと彼は最初に2文字または3文字を入力すると、アイテム名の残りの部分を取得するクエリが実行され、ユーザーに提案されますジャンゴ休憩APIの事前検索

私はdrf haystackのドキュメントを見ましたが、また、django LTSバージョン1.11はサポートしていません。

お願いします。私は上記のsuch advance searchを行うだろうそのようなAPIを作成するための任意のサポートを提供するジャンゴ休憩フレームワークですか?私はちょうど私がdjango restフレームワークで新しくなったので、いくつかの提案が必要です。

+0

にインポートすることを忘れないでください答えはあなたの努力のため –

答えて

0

提案で検索したい場合は、jqueryオートコンプリート入力を使用して食料品を生成するビューをリンクすることができます。この単純なタスクにはrest-frameworkを使用する必要はありません。

htmlコード:

<script> 
$(function() { 
    $("#your_input_id").autocomplete({ 
    source: "{% url 'url_name' %}", 
    minLength: 2, 
}); 
}); 

</script> 

は、ビューを作成することができます:

import json # or simplejson 
def get_grocery(request): 
    if request.is_ajax(): 
     q = request.GET.get('term', '') 
     places = Grocery.objects.filter(grocery_name__icontains=q) 
     results = [] 
     for pl in places: 
      place_json = {} 
      place_json['id'] = pl.id 
      place_json['label'] = pl.grocery_name 
      place_json['value'] = pl.grocery_name 
      results.append(place_json) 
     data = json.dumps(results) 
    else: 
     data = 'fail' 
    mimetype = 'application/json' 
    return HttpResponse(data, mimetype) 

finaly URL:

url(r'^api/get_grocery/', views.get_grocery, name='url_name'), 

はjqueryの

<!-- jQuery !--> 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.18/themes/base/jquery-ui.css" type="text/css" media="all" /> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"> 
</script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script> 
+0

@thanksを参照してくださいが、残念ながらそれは私の要件を満たしていないしてください。私はそれが 'django rest framework'を使ってやりたいと思っています。 – RTan

+0

ok私の食べ物からjsonリストを生成するrest-frameworkと私のビューを置き換えますが、入力とjquery-autocompleteはあなたのために働きます –

+0

ya、答えにもう一つの問題は 'icontains'を使ってフィルタをやっていることです私の要求を満たしていないと、私はクライアント側からクライアントが食料品の名前の2〜3文字を要求し、次にAPIが最も可能性の高い食料品の名前を提示することを尋ねました。 'icontains'は目的を果たしませんよね?あなたはそれについて弾力的な検索を使用すれば、そのような検索を行うことをお勧めしますか? – RTan

関連する問題