AJAX не работает на Django и возвращает ошибку 500
Я пытаюсь отправить AJAX запрос из моего шаблона, который ведет на url и запускает функцию view. Однако, я получаю ошибку 500 Error в моей консоли. Ошибка в журнале Django говорит: TypeError: delete_appointment() missing 1 required positional argument: 'appointment_id'
Мое представление также использует пользовательский декоратор, весь необходимый код ниже:
Декоратор
def user_has_delete(func, redirect_url="Home:Deny"):
def wrapper(request, *args, **kwargs):
if request.user.is_anonymous:
return redirect(redirect_url)
if request.user.is_authenticated:
if not request.user.is_denier:
return redirect(redirect_url)
else:
return func(request, *args, **kwargs)
return wrapper
URL Pattern
path('Vet/DenyAppointment/<int:appointment_id>', views.delete_appointment)
Вид
@user_has_delete
@never_cache
def delete_appointment(request, appointment_id):
appointment = get_object_or_404(Appointments, pk=appointment_id)
appointment.delete()
return redirect('Dashboard')
Шаблонная часть
{% for appointment in appointments %}
<div class="col-sm-12 col-lg-8 AppointmentDiv offset-sm-0 offset-lg-2 Space-b-sm">
<h2>{{ appointment.fullDate }}</h2>
<ul>
<li>{{ appointment.title }}</li>
<li>{{ appointment.day }}</li>
</ul>
<button type="submit" class="theme" id='{{ appointment.id }}' onclick="deleteAppointment({{ appointment.id }})">Delete Appointment</button>
</div>
{% endfor %}
AJAX
<script>
function deleteAppointment(appointmentId) {
$.ajax({
url: '/Vet/DenyAppointment/' + appointmentId,
type: 'GET',
success: function(response) {
window.location.href = "/Dashboard";
}
});
}
</script>
Исправлено. Я не отправлял данные в AJAX, просто добавляя id встречи в url. Затем мне нужно было настроить мой декоратор на прием дополнительных параметров.