-1

属性を持つ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()何も機能しません。コードの何が問題になっていますか?

4

2 に答える 2

1

エラーが発生するため、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)
于 2013-12-23T19:56:53.380 に答える
0

モデルのvotes属性を に設定しました。したがって、追加操作を実行できませんでした。代わりに設定しました。Songdefault=Nonedefault=0

于 2013-12-25T14:47:04.897 に答える