Привет, я пытаюсь позвонить на мой django api
с помощью вызова ajax от моего django template
API получает запрос POST со значением идентификатора в URL
Мое представление API:
@api_view(['POST'])
def add_favorite(request, property_id):
if request.method == 'POST':
try:
favorite_property = Property.objects.get(pk=property_id)
if request.user.is_authenticated:
login_user = request.user
if not login_user.properties.filter(pk=property_id).exists():
login_user.properties.add(favorite_property)
return JsonResponse({'code':'200','data': favorite_property.id}, status=200)
else:
return JsonResponse({'code':'404','errors': "Property already exists in favorite"}, status=404)
except Property.DoesNotExist:
return JsonResponse({'code':'404','errors': "Property not found"}, status=404)
Мой HTML-код со ссылкой на вызов ajax:
<a id="mylink" href="javascript:onclickFunction('{{ property.id }}')">
<i class="far fa-heart fa-lg" style="color: red" title="Add to favorite"></i>
</a>
И вот как я вызываю API в моем представлении django, чтобы попытаться получить ответ:
<script>
$(document).ready(function () {
$('#mylink').on('click', function (property_id) {
property_id.preventDefault();
$.ajax({
type: "POST",
url: "http://localhost:9999/api/add_favorite/" + property_id.toString() + "/",
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Bearer {{ refresh_token }}');
},
success: function (data) {
var obj = jQuery.parseJSON(data);
alert(obj);
}
});
return false;
});
});
</script>
Когда я пытаюсь нажать на ссылку, она возвращает следующую ошибку:
ValueError: недопустимый литерал для int () с основанием 10: '[object Object]'web_1 |[24 / Sep / 2019 03:13:14] "POST / api / add_favorite / [object% 20Object] / HTTP / 1.1" 500 17473
Я пытался превратить property_id в строкукак будто это все еще не работает, я не знаю, что еще я пропускаю.