Django / jQuery - 用于更新表格每行的值的按钮

时间:2014-06-24 19:38:55

标签: javascript jquery django

我正在学习Django,所以我正在创建一个可以用布尔值跟踪书籍的应用程序,无论我是否将它们作为学习项目阅读。该模型是相对自我解释的书籍,标题和id以及布尔完成的"字段"。我希望有一个列出书籍的页面,每个书旁边都有一个按钮,它将把读状态改为True并立即使用AJAX / jQuery更新(最后是一个类似的未读错误按钮)。我无法使按钮工作。具体来说,我想我需要以某种方式为每一行分配一些id,以便jQuery知道它正在使用哪个项目。

对任何明显的错误道歉。我是网络编程的新手,我很遗憾不得不向大家请求帮助,但我一直试图找出一个解决方案,我已经做了几天了。

这是django模板片段:

{% for book in lib_dict.books %}
<tr>
    <td>{{ book.title }}</td>
    <td>{{ book.date_due }}</td>
    <td id="book_completed_{{ book.id }}">{{ book.completed }}</td>
    <td>
        <button id="{{ book.id }}" data-bookid="{{ book.id }}" class="btn-mini btn-primary c" type="button">Complete</button>
    </td>
</tr>
{% endfor %}

views.py:

def complete_book(request):
    context = RequestContext(request)
    book_id = None
    if request.method == 'GET':
    book_id = request.GET['book_id']

    if book_id:
    book = Book.objects.get(id=int(book_id))
    if book:
        book.completed = True
        book.save()

    return HttpResponse(book.completed)

jQuery代码 - 我想象错误在这里

$('.btn-mini btn-primary c').click(function(){
    var bookid;
    bookid = $(this).attr("data-bookid");
    $.get('/libco/complete_book/', {book_id: bookid}, function(data){
        var bookstring = '#book_completed_' + bookid;
        $(bookstring).html(data);  \\trying to update the completed table cell
        $('#bookid').hide();   \\trying to hide the button
    });
});

请注意,所有连接都可以正常工作。如果我只为具有专用id的单行创建此按钮,并在jQuery的第一行使用适当的#-tag,它可以工作,但是我在泛化时遇到了问题。也许&#34;。&#34;在第一行中获取课程的方法是什么?

另外,我非常想自学,所以如果有这方面的任何好资源,请告诉我。我开始研究官方jQuery教程,但我很快就看了一下,似乎没什么关系。

谢谢大家!

1 个答案:

答案 0 :(得分:0)

改变这个:

$('.btn-mini btn-primary c')

为:

$('.btn-mini.btn-primary.c')