Лайки на Ajax и Django
Пытаюсь реализовать лайки на сайте через ajax. При нажатии лайка что-то происходит с url и подключение к серверу не происходит. Выдает POST http://127.0.0.1:8000/post/1/%7B%%20url%20'like_url'%20%%7D 404 (Not Found)
Post.js
$(".like").on("click", function(){
console.log("hit");
var pk = $(this).attr("name")
$.ajax({
url: "{% url 'like_url' %}",
type: 'POST',
data: {
'post_id': pk,
'csrfmiddlewaretoken': '{{ csrf_token }}'
},
dataType: "json",
success : function(response){
$("i").toggleClass("like_active");
},
error: function(rs, e) {
alert(rs.responseText);
}
});
});
Template.html
<div class="likes">
<a class="like" name="{{ post.id }}">
{% if user in post.likes.all %}
<i class="fas fa-heart like_active"></i>
{% else %}
<i class="fas fa-heart"></i>
{% endif %}
</a>
<span class="likes_num">{{ post.likes.count }}</span>
</div>
Urls.py
urlpatterns = [
path('post/<int:post_id>/', views.post_detail, name='post_detail'),
path('post/<int:post_id>/like/', views.like, name='like'),
]
Ответы (1 шт):
Автор решения: floydya
→ Ссылка
Проблема в том, что вы пытаетесь отрендерить урлу внутри .JS файла. Решить эту проблему можно путем объявления урлы глобально на окно в HTML файле:
<script>
window.like_url = "{% url 'like' post.id %}"
</script>
Потом уже в .JS получаем урлу через window.like_url