2011-01-24 11 views
1

ジャンゴレーティングはJqueryでどのように動作させるのですか?Django-ratingとJqueryの統合ですか?

私がしようとしているのは、ユーザーが製品に与えたい星をどれだけ多く選択し、対応するレーティングを非同期に処理するかです。これはおそらく基本的なAJAXだと分かっています。これが愚かな質問であれば謝ります。

ありがとうございます。

答えて

1

として星の数を把握するために複雑なアルゴリズムを交換するのと同じくらい簡単であるかもしれません。

return HttpResponse(....) 

と:

if request.is_ajax(): 
    return json_response 
else: 
    return HttpResponse(....) 

あるいは必要AJAX:

if request.is_ajax(): 
    return json_response 
else: 
    return HttpResponseForbidden('Only AJAX please!') 

しかし、私が見るところでは、hereには、実際の応答を生成するための複雑なパターンがいくつかあります。そのため、jQueryのAJAXレスポンスハンドラでこれを処理したり、レスポンスを解析したり、AddRatingViewのデコレータを記述したりすることができます。 を呼び出して、Python側で応答を解析し、jQueryに優しいJSONを返します。

ここでは、既存のdjango-ratingコードをたくさん混乱させたくないと仮定します。それをアップグレードするオプションを保持します。

0

あなたは、その基本的なAjaxの権利ですが、あなたは通常AJAXへの変換

2

私はあなたの質問を理解するかどうか分かりませんが、JavaScript側またはモデル側からの質問ですか? JavaScriptから、私はその後、私の見解で、私はその要求をキャプチャする機能を持っており、この

p = Product.objects.get(id=product_id) 
p.rating.add(score=int(request.POST['rate']), user=request.user, ip_address=request.META['REMOTE_ADDR']) 
p.save() 

を行うと、最新の私を返送するための要求を使用することになり、この

STARS_ELEMENT.stars({ 
    callback: function(ui, type, value){ 
     $.post('URL_ADDRESS', {rate: value}, 
      function(data){ 
       STARS_ELEMENT.stars("select",data); 
      });       
    } 

のようなものを使用しましたレート値。それはあなたが探していたものですか?

関連する問題