Django Ajax Request - JSONDecodeError: Ожидание значения

Я работаю над проектом Django, в котором у меня есть система записи на курсы. У меня есть кнопка на HTML-странице, которая при нажатии вызывает Ajax-запрос для отправки данных о зачислении. Кнопка перенаправляет меня на страницу с формой, в которой студент может заполнить такие данные, как имя, фамилия, номер телефона, электронная почта и уровень владения языком.

Однако я столкнулся с проблемой, когда значения из HTML-атрибутов (data-language-id, data-course-name, data-price) не передаются в представление Django. При попытке разобрать тело запроса представление Django возвращает JSONDecodeError: Expecting value. Я собираюсь сохранить эти данные в двух таблицах в моей базе данных: Student и Enrolment. Любые соображения или предложения о том, как решить эту проблему и успешно сохранить данные в этих таблицах, будут очень признательны. Спасибо!

HTML-код:

<!-- This is the button triggering the Ajax request -->
<div class="block1_1">
    <!-- ... other HTML content ... -->
    <div class="block__button" onclick="submitData(this)" data-language-id="1"
        data-course-name="Стандарт" data-price="6000">
        <a href="{% url 'index3' %}">Записатися</a>
    </div>
</div>

Код на JavaScript:

function submitData(clickedBlock) {
    var languageId = clickedBlock.getAttribute('data-language-id');
    var courseName = clickedBlock.getAttribute('data-course-name');
    var price = clickedBlock.getAttribute('data-price');

    $.ajax({
        url: "/index3/",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify({
            language_id: languageId,
            name: courseName,
            price: price,
        }),
        success: function(response) {
            console.log(response);
            window.location.href = '{% url "index3" %}';
        },
        error: function(xhr, status, error) {
            console.error('Error:', error);
            alert('Failed to submit data. Please try again.');
        }
    });
}

Django View (views.py):

def index3(request):
    if request.method == "POST":
        data = json.loads(request.body.decode("utf-8"))
        language_id = data.get("language_id")
        course_name = data.get("name")
        price = data.get("price")

        # Extract form data
        name = request.POST.get("student_name")
        surname = request.POST.get("student_surname")
        phone_number = request.POST.get("phone_number")
        email = request.POST.get("email")
        language_level = request.POST.get("lang_level")

        # Create Student instance and save to the database
        student = Student.objects.create(
            name=name, surname=surname, phone_number=phone_number, email=email
        )

        # Find the Course based on the provided parameters
        course = Course.objects.get(name=course_name, price=price, level=language_level)

        # Create Enrolment instance and link it with Student and Course
        enrolment = Enrolment.objects.create(
            student=student,
            course=course,
            language=language_id,  
        )

        return redirect("success_page")  

    return render(request, "index3.html")
Вернуться на верх