Функция Dajax не может вызвать другую функцию
У меня есть Song
модель с votes
приписывать. у меня есть Vote as Favourite
кнопка отображается под каждым Song
объект. Я хочу, когда пользователь нажимает на Vote as Favourite
застегнуть votes
атрибут, связанный с этим Song
объект должен увеличиваться на 1 и все Vote as Favourite
кнопки должны быть отключены.
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 %}
ajax.py
def update_votes(id):
song = Song.objects.get(song_id=id)
song.votes += 1
song.save()
@dajaxice_register
def update_disable(request, song_id):
update_votes(song_id)
dajax = Dajax()
dajax.assign('.vote', 'disabled', 'disabled')
return dajax.json()
JavaScript
function update(){
Dajaxice.hunt.update_disable(Dajax.process,{'song_id':$('.song_id').val()})
}
Часть отключения кнопки работает нормально, если используется одна. Но когда я использую update_votes()
функция в update_disable()
Функция ничего не работает. Что не так с моим кодом?
2 ответа
Я установил votes
атрибут Song
модель для default=None
, Следовательно, он не смог выполнить операцию сложения. Я установил это сейчас как default=0
вместо.
Часть AJAX ничего не делает, потому что получает ошибки. Проблема в update_votes()
функция. Проблемы могут быть:
- Несколько объектов существуют с одинаковыми
song_id
значение - Песня с
id
не существует
Попробуйте использовать pdb.set_trace()
в целях отладки:
def update_votes(id):
import pdb; pdb.set_trace()
song = Song.objects.get(song_id=id)