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)