Я продолжаю получать «Not Ajax» в качестве ответа во время отправки формы. Мне не хватает чего-то маленького, но я его не вижу ...
class VideoLikeView(View):
def post(self, request):
if request.is_ajax():
message = 'Ajax'
else:
message = 'Not Ajax'
return HttpResponse(message)
Код AJAX выглядит так:
$(function () {
$("#like-form").submit(function (event) {
$.ajax({
type: "POST",
url: form.attr('action'),
headers: {'X-CSRFToken': '{{ csrf_token }}'},
data: {'pk': $(this).attr('value')},
success: function(response) {
alert('Video liked');
},
error: function(rs, e) {
alert(rs.responseText);
}
}
});
});
});
И мой HTML:
<form id="like-form" action="{% url 'video-like' %}" method="post">
{% csrf_token %}
<input name="like"
type="hidden"
value="{{ video.id }}">
<button type="submit">
<span class="video-options ml-auto fas fa-heart fa-2x m-2"></span>
</button>
</form>
Еще один вопрос, чтобы добавить к этому; как я могу использовать <input>
в своей форме без использования <button>
? Я хотел бы использовать иконки fontawesome, но мне кажется, что мне нужно использовать кнопку, чтобы отправить форму.