Я пытаюсь сделать кнопку «Добавить в избранное» в моем приложении с помощью вызова AJAX. Мой фрагмент HTML-кода
{% if user.is_authenticated %}
<div id="favDiv"> <a id="favorite" href="/blogs/{{blog.id}}/favorite/"> Add to Favourites </a> </div>
{% endif %}
JQuery для этого
$("a#favorite").click(function(){
var link = $(this).attr("href");
$.ajax({
type: "POST",
url: link,
success: function()
{
alert("Function succeeded");
$("#favDiv").html("Favourites");
},
error: function()
{
alert("Function failed");
}
});
return false;
});
Что я хочу сделать, так это то, что когда пользователь нажимает на избранную кнопку, HTML-код внутри div должен быть заменен простым текстом.
Мой views.py
содержит
def favorite_blog(request,blog_id):
blog = get_object_or_404(Entry, pk=blog_id)
current_user = request.user
fav = favorite(user=current_user,entry = blog)
fav.save()
if request.is_ajax():
return_message = "Set Favourite"
return HttpResponse(return_message,mimetype='application/javascript')
else:
return HttpResponseRedirect(reverse('view_blog', args=(),kwargs={'blog_id': blog.id,}))
Все работает нормально, когда я нажимаю кнопку, база данных обновляется, однако ни success: function()
не выполняется, ни failure: function()
, что может быть возможной причиной. У меня есть другой аналогичный скрипт для кнопки «Мне нравится», и он отлично работает.