-1

我有一个Song带有votes属性的模型。我在每个对象Vote as Favourite下方显示了一个按钮。Song我希望当用户单击Vote as Favourite按钮时,votes与该对象关联的属性Song应该增加 1,并且所有Vote as Favourite按钮都应该被​​禁用。

HTML

{% for song in dj_song_list %}
    <div>
        <p><h3>{{ song.name }}</h3></p>
        <p class="song_id">{{ song.song_id }}</p>
        <button type="button" class="btn btn-default btn-custom" class='vote' onclick="update();">Vote as Favourite</button>
    </div>
{% endfor %}

ajax.py

def update_votes(id):
    song = Song.objects.get(song_id=id)
    song.votes += 1
    song.save()

@dajaxice_register
def update_disable(request, song_id):
    update_votes(song_id)
    dajax = Dajax()
    dajax.assign('.vote', 'disabled', 'disabled')
    return dajax.json()

JavaScript

function update(){
     Dajaxice.hunt.update_disable(Dajax.process,{'song_id':$('.song_id').val()})
}

单独使用时,按钮禁用部分工作正常。但是当我在update_votes()函数中使用该函数时,update_disable()没有任何效果。我的代码有什么问题?

4

2 回答 2

1

AJAX 部分什么都不做,因为它会出错。问题出在update_votes()功能上。问题可能是:

  • 存在多个具有相同song_id值的对象
  • id不存在的歌曲

尝试pdb.set_trace()用于调试目的:

def update_votes(id):
    import pdb; pdb.set_trace()
    song = Song.objects.get(song_id=id)
于 2013-12-23T19:56:53.380 回答
0

我已将模型的votes属性设置为. 因此它无法执行加法操作。我现在将其设置为。Songdefault=Nonedefault=0

于 2013-12-25T14:47:04.897 回答