我有一个AJAX函数,可以调用另一个函数。
def update_votes(song_pk):
song = Song.objects.get(pk=song_pk)
song.votes += 1
song.save()
@dajaxice_register
def update_disable(request, song_pk):
update_votes(song_pk)
dajax = Dajax()
dajax.assign('.vote', 'disabled', 'disabled')
return dajax.json()
单独使用时,按钮禁用部件可正常工作。但是当我在update_votes()
函数中使用update_disable()
函数时,没有任何作用。问题在于song = Song.objects.get(pk=song_pk)
行。我做错了什么?
这就是我获取主键的方式。
function update(){
Dajaxice.hunt.update_disable(Dajax.process,{'song_pk':$('.song_pk').val()})
}
这是我的HTML
{% for song in dj_song_list %}
<div>
<p><h3>{{ song.name }}</h3></p>
<p style="display:none;" class="song_pk">{{ song.id }}</p>
<button type="button" class="btn btn-default btn-custom" class='vote' onclick="update();">Vote as Favourite</button>
</div>
{% endfor %}
答案 0 :(得分:0)
此选择器$('.song_pk')
将使用页面中的.song_pk类选择所有元素。 .val()
将返回所选元素中第一个项目的值,这通常是最重要的一个。
其次,您可能希望将pk放入隐藏的输入标记中,而不是将pk放在隐藏的p标记中。如果您确实想将其放入p标记,则需要使用.text()
代替.val()
。