Я создал кнопку «Сохранить». Пользователь нажимает кнопку «Сохранить», чтобы сохранить запись в своей коллекции. Это изменит текст кнопки «Сохранить» на «Сохранено». Затем пользователь может нажать «Сохранено», чтобы сохранить запись.Django/Ajax не освежает
Пользователь может сохранить запись успешно, и ajax обновит html, как ожидалось, изменив id="likes"
на id="unsave"
.
Проблема в том, что ajax не подбирает id = "unsave", поэтому не направляется на URL-адрес unsave_release
, он маршрутизируется на URL-адрес save_release
.
примеры Url
http://127.0.0.1:8000/save_release/?release_id=585197&num_saves=14 http://127.0.0.1:8000/unsave_release/?release_id=585197&num_saves=14
Мне нужно сбросить Аякса каким-то образом после того, как пользователь делает первоначальный Сохранить ли?
models.py
@login_required
def save_release(request):
release_id = None
num_saves = None
username = request.user.username
if request.method == 'GET':
release_id = request.GET['release_id']
num_saves = request.GET['num_saves']
if release_id:
insert = ChartsExtended(release_id=release_id,artist=username,url='Like',date='date',type='U',source='net')
insert.save()
num_saves = str(int(num_saves) + 1)
return HttpResponse(num_saves)
@login_required
def unsave_release(request):
release_id = None
num_saves = None
username = request.user.username
if request.method == 'GET':
release_id = request.GET['release_id']
num_saves = request.GET['num_saves']
if release_id:
insert = ChartsExtended.objects.get(release_id=release_id,artist=username)
insert.delete()
num_saves = str(int(num_saves) - 1)
return HttpResponse(num_saves)
ajax.js
$(document).ready(function() {
// JQuery code to be added in here.
$('#likes').click(function(){
var release_id;
var num_saves;
release_id = $(this).attr("data-releaseid");
num_saves = $(this).attr("data-numsaves")
$.get('/save_release/', {release_id: release_id,num_saves: num_saves},
function(data){
$('#like_count').html(data + " people saved this");
// $('#likes').css({"background-color":"#FF0000"});
$('#likes').toggleClass("btn-info");
$('#likes').text('Saved!')
$('#likes').attr('id','unsave');
});
});
//this unsaves a release from Release
$('#unsave').click(function(){
var release_id;
var num_saves;
release_id = $(this).attr("data-releaseid");
num_saves = $(this).attr("data-numsaves")
$.get('/unsave_release/', {release_id: release_id,num_saves: num_saves},
function(data){
$('#like_count').html(data + " people saved this");
// $('#likes').css({"background-color":"#FF0000"});
$('#unsave').toggleClass("btn-success");
$('#unsave').text('Save')
$('#unsave').attr('id','likes');
});
});
release.html
<h3 id="like_count">{{dict_item.cnt}} people saved this</h3>
<p><button id="likes" data-releaseid="{{ dict_item.id }}" data-numsaves="{{dict_item.cnt}}" class="btn btn-xlarge btn-success release-follow-buttons" type="button">Save</button></p>
, который переходит в е ollowing после того как пользователь нажмет кнопку Сохранить
<p><button id="unsave" data-releaseid="release_id" data-numsaves="num_saves" class="btn btn-xlarge btn-success release-follow-buttons btn-info" type="button">Saved!</button></p>
urls.py
url(r'^save_release/$', views.save_release, name='save_release'),
url(r'^unsave_release/$', views.unsave_release, name='unsave_release'),
Удивительное спасибо, что работает. – Franco