探戈与Django - 创造'喜欢'按键

时间:2015-09-16 13:00:30

标签: python django

我只是想知道为什么我喜欢'按钮无法工作。

这是我在views.py

中的like_category()函数
@login_required
def like_category(request):

    cat_id = None
    if request.method == 'GET':
        cat_id = request.GET.get('category_id', '')

    likes = 0
    if cat_id:
        cat = Category.objects.get(id=int(cat_id))
        if cat:
            likes = cat.likes + 1
            cat.likes = likes 
            cat.save()

    return HttpResponse(likes)

rango-ajax.js代码:

$(document).ready(function(){

    $('#likes').click(function(){
        var catid;
        catid = $(this).attr("data-catid");
        $.get('/rango/like_category/', {category_id: catid}, function(data){
            $('#like_count').html(data);
            $('#likes').hide();
        });
    });
});

这是category.html代码:

<p>

<strong id="like_count">{{ category.likes }}</strong> people like this category

{% if user.is_authenticated %}
    <button id="likes" data-catid="{{ category.id }}" class="btn btn-primary" type="button" action="/rango/like_category/">
    <span class="glyphicon glyphicon-thumbs-up"></span>
    Like
    </button>
{% endif %}

</p>

以下是base.html代码的一部分:

{% load rango_extras %}

{% load staticfiles %}
<script src="{% static "js/jquery-1.11.1.js" %}"></script>
<script src="{% static "js/rango-jquery.js" %}"></script>


<script src="{% static "js/jquery.js" %}"></script>
<script src="{% static "js/rango-ajax.js" %}"></script>

我发现我的代码与本书完全相同,但为什么&#39;喜欢&#39;按钮只是无法工作?

1 个答案:

答案 0 :(得分:0)

因为上面显示的代码与书籍展示完全相同,所以也许问题不会发生在那里。

当我在base.html中查看我的代码时,我发现我放了<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 在按钮中,然后我将此代码放在所有.js文件上方,然后一切顺利。

所以也许代码顺序非常重要,我犯了一个愚蠢的错误。

无论如何,谢谢@avenet和@Jahongir Rahmonov