I would like to delete an object in my Django DB with http request with Axios to Django View. But POST url is changes being added a strange thing, [object%20Object]. It seems to be the problem of converting but I don't understand exectly why it happens. What I'm doing wrong?
this is the part of axios.
<script>
// Delete review
const deleteBtns = document.getElementsByClassName("delete");
function handleClickDelete(event){
event.preventDefault();
const deleteBtn = event.target;
const pk = deleteBtn.value;
const review = document.getElementById(`${pk}`);
review.hidden = true
axios.post({
url:"{% url 'reviews:delete' %}",
data:{
"pk": pk
}
})
.then(res => alert("the review is deleted!"))
.catch(errors => console.log(errors.response.data));
}
for (const deleteBtn of deleteBtns) {
deleteBtn.addEventListener("click", handleClickDelete);
}
</script>
Django urls.py
app_name = "reviews"
urlpatterns = [
path(
"api/<int:pk>/review/create/",
review_views.create_review,
name="create",
),
path(
"api/review/delete/",
review_views.delete_review,
name="delete",
),
path(
"api/review/update/",
review_views.update_review,
name="update",
),
]
and view.py
def delete_review(request):
if request.method == "POST":
pk = request.POST.get("pk")
review = models.Review.objects.get(pk=pk)
review.delete()
return JsonResponse({"status": "Success"})