使用 Dajaxice 获取 AJAX 调用的对象值

2023-12-31

我有一个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 %}

我正在使用 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()?

The disable_button()仅禁用第一次投票按钮。如何禁用所有投票按钮?

我怎样才能同时调用两者update_votes() and disable_button()使用相同的按钮 onclick 属性?


以下是更新投票的方法。您不需要 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

您确定使用正确的选择器来禁用按钮吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Dajaxice 获取 AJAX 调用的对象值 的相关文章

随机推荐