我有一个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()
函数时,没有任何作用。我的代码出了什么问题?
答案 0 :(得分: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)
答案 1 :(得分:0)
我已将votes
模型的Song
属性设置为default=None
。因此,它无法执行添加操作。我现在将其设置为default=0
。