刷新div以使用JQuery和AJAX在Django中显示新的评级

ale*_*dar 2 html django jquery

我是django的新手,无法找到只刷新div的方法,div显示我目前的星级评分.我的想法是,用户可以通过点击星标来查看平均评分和评分,点击后我希望星标显示新的平均评分而不刷新整个页面.

这是div:

<div id="rating">
    <div class="movierating" id="o_{{ object.id }}">
        <span style="display:none;">{{ object.rating_vote.get_rating }}</span>
        {{ object.rating_vote.get_rating }}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

而javascript是:

  <script type="text/javascript" charset="utf-8">
    $(document).ready(function() {  
         $('.movierating').each(function(index){
          $(this).raty({
            readOnly:  false,
            path: "{{ STATIC_URL }}images/",
            start: $(this).children("span:first").text(),
            click: function(score, evt) {
                var vote_url = "/rate/" + this.attr('id').substring(2) + "/" + score + "/";
                var div = this.attr('id');
                $.ajax({
                  url: vote_url,
                  success: function(){
                    alert('Vote successful!);
                $('#rating').load('#rating');
                  },
                });
            }
          });
        });
    });
  </script>
Run Code Online (Sandbox Code Playgroud)

有了这段代码

$('#rating').load('#rating');

我将整个页面放入div中,当我使用时

$('#rating').load('# rating');

没有星星,我只获得价值.

cat*_*ine 5

首先,复制内部的代码<div id="rating"></div>并将其保存到另一个文件.可以说,

rating.html

 <div class="movierating" id="o_{{ object.id }}">
    <span style="display:none;">{{ object.rating_vote.get_rating }}</span>
    {{ object.rating_vote.get_rating }}
</div>
Run Code Online (Sandbox Code Playgroud)

现在在你的页面中,它将是,

your.html

............
<div id="rating">
    {% include 'rating.html' %}
</div>
............
Run Code Online (Sandbox Code Playgroud)

然后,创建new viewnew urlrating.html

urls.py

url(r'^rating/$', 'rating', name='rating'),
Run Code Online (Sandbox Code Playgroud)

views.py

def rating(request):
    //rating object here

    return render(request, 'rating.html', {
        //call rating object variable here
    })
Run Code Online (Sandbox Code Playgroud)

最后,在你的ajax中

.........
$.ajax({
    url: vote_url,
    success: function(){
        alert('Vote successful!);
        $("#rating").load("/app_name/rating/");
    },
});
...........
Run Code Online (Sandbox Code Playgroud)