我有一个Song
模型,其votes
属性。我在每个Vote as Favourite
对象下面显示了一个Song
按钮。我希望当用户点击Vote as Favourite
按钮时,与votes
对象关联的Song
属性应增加1,并且应禁用所有Vote as Favourite
按钮。
HTML
{% for song in dj_song_list %}
<div>
<p class="song"><h3><strong>{{ song.name }}</strong></h3></p>
<p><strong>Artist: </strong>{{ song.artists}}</p>
<button type="button" class="btn btn-default btn-custom" id='vote' onclick="Dajaxice.hunt.disable_button(Dajax.process)">Vote as Favourite</button>
</div>
{% endfor %}
我正在为我的AJAX调用使用dajaxice / dajax。这就是我作为我的ajax.py
所提出的ajax.py
from django.utils import simplejson
from dajaxice.decorators import dajaxice_register
from dajax.core import Dajax
@dajaxice_register
def disable_button(request):
dajax = Dajax()
dajax.assign('#vote', 'disabled', 'disabled')
return dajax.json()
@dajaxice_register(method="POST")
def update_votes(request, song):
song.votes += 1
song.save()
return simplejson.dumps({'message':'Thank you for voting'})
JS
function callback(data){
alert(data.message);
}
如何获取要发送给Song
的{{1}}对象的值?
update_votes()
仅禁用第一个投票按钮。如何禁用所有投票按钮?
如何使用相同的按钮onclick属性调用disable_button()
和update_votes()
?
答案 0 :(得分:1)
以下是更新投票的方法。您不需要update_votes作为ajax函数。
def update_votes(song_id):
song = Song.objects.get(id=song_id)
song.votes += 1
song.save()
然后,您可以在disable_button中调用此函数。
@dajaxice_register
def disable_button(request, song_id):
update_votes(song_id)
#disable the buttons
return #whatever
您确定使用正确的选择器来禁用按钮吗?