Javascript Dajax函数无法调用其他函数

Javascript Dajax函数无法调用其他函数,javascript,ajax,django,dajaxice,dajax,Javascript,Ajax,Django,Dajaxice,Dajax,我有一个歌曲模型,带有投票属性。我在每个歌曲对象下方都显示了一个投票为收藏夹按钮。我希望当用户单击投票为收藏夹按钮时,与歌曲对象关联的投票属性应增加1,并且所有投票为收藏夹按钮应被禁用 HTML {% for song in dj_song_list %} <div> <p><h3>{{ song.name }}</h3></p> <p class="song_id">{{ song.

我有一个
歌曲
模型,带有
投票
属性。我在每个
歌曲
对象下方都显示了一个
投票为收藏夹
按钮。我希望当用户单击
投票为收藏夹
按钮时,与
歌曲
对象关联的
投票
属性应增加1,并且所有
投票为收藏夹
按钮应被禁用

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 %}
JavaScript

function update(){
     Dajaxice.hunt.update_disable(Dajax.process,{'song_id':$('.song_id').val()})
}

单独使用时,按钮禁用部件工作正常。但是当我使用
update\u disable()
函数中的
update\u voces()
函数时,什么都不起作用。我的代码有什么问题吗?

AJAX部分什么都不做,因为它会出错。问题出在
update\u voces()
函数中。问题可能是:

  • 存在多个具有相同
    song\u id
    值的对象
  • id为的歌曲不存在
尝试使用
pdb.set_trace()
进行调试:

def update_votes(id):
    import pdb; pdb.set_trace()
    song = Song.objects.get(song_id=id)

我已经将
歌曲
模型的
投票
属性设置为
default=None
。因此,它无法执行加法操作。我现在将其设置为
default=0

该id是我从Beatport API获得的每首歌曲的唯一歌曲id,它不是主键。但问题仍在这一行。检查带有
song\u id
的歌曲是否确实存在。我的
song
模型有一个
song\u id
字段。您的
update\u voces
函数是否获得了有效的
id
值?但是
song\u id
不是唯一的字段。我认为这可能是造成问题的原因。如何获取与歌曲对象关联的主键以发送到
update\u voces()
函数?
def update_votes(id):
    import pdb; pdb.set_trace()
    song = Song.objects.get(song_id=id)