【发布时间】:2014-01-10 23:41:57
【问题描述】:
我有一个带有votes 属性的Song 模型。我在每个 Song 对象下方显示了一个 Vote as Favourite 按钮。我希望当用户单击 Vote as Favourite 按钮时,与该 Song 对象关联的 votes 属性应增加 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 %}
我正在使用 dajaxice/dajax 进行 AJAX 调用。这就是我想出的 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 对象的值以发送到update_votes()?
disable_button() 仅禁用第一个投票按钮。如何禁用所有投票按钮?
如何使用相同的按钮 onclick 属性同时调用 update_votes() 和 disable_button()?
【问题讨论】:
标签: javascript python ajax django dajaxice