Ajax POST запрос не работает в проекте Django

Я пытался создать сайт электронной торговли как часть моего проекта. Но ajax "POST" с использованием jquery не работает. Я не уверен, где это пошло не так. Пожалуйста, простите за мой плохой английский....

{% extends "store/base.html" %}
{% load static %}
{% block title %}
{{ product.name }}
{% endblock %}
{% block content %}
<div class="container">
    <main class="pt-5">
        <div class="row g-3">
            <div class="col-md-5 col-lg-5 order-md-first bg-light">
                <img class="img-fluid mx-auto d-block" width="200px" alt="Responsive image" src="{{ product.image.url }}">
            </div>
            <div class="col-md-7 col-lg-7 ps-md-3 ps-lg-5">
                <h1 class="mb-0 h4">{{ product.title }}</h1>
                <p><span class="lead">{{ product.author }}</span> (Author)</p>
                <p>{{ product.description|slice:":355" }}...</p>
                <div class="border">
                    <div class="col border-bottom">
                        <div class="row p-3">
                            <div class="col-6">Hardback</div>
                            <div class="col-6 text-end"><span class="h4 fw-bold">£{{ product.price }}</span></div>
                        </div>
                    </div>
                    <div class="col">
                        <div class="row p-3">
                            <div class="col-6">
                                <label for="select">Qty</label>
                                <select id="select">
                                    <option value="">1</option>
                                    <option value="">2</option>
                                    <option value="">3</option>
                                    <option value="">4</option>
                                </select>

                            </div>
                            <div class="col-6 text-end">
                                <button type="button" id="add-button" value="{{ product.id }}" class="btn btn-secondary btn-sm">Add to basket</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </main>

</div>

<script>
    $(document).on('click', '#add-button', function (e) {
        e.preventDefault();
        $.ajax({
            type: 'POST',
            url: '{% url "basket:basket_add" %}',
            data: {
                productid: $('#add-button').val(),
                csrfmiddlewaretoken: "{{csrf_token}}",
                action: 'post',
            },
            success: function (json) {
            },
            error: function (xhr, errmsg, err) {}
        });
    })
</script>
{% endblock %}

выше приведена шаблонная часть

from django.shortcuts import render
from django.shortcuts import get_object_or_404
from django.http import JsonResponse,HttpResponse


from .basket import Basket
from store.models import Product

def basket_summary(request):
    return render(request,'store/basket/summary.html')

def basket_add(request):
    basket= Basket(request)
    if request.POST.get('action') == "post":
        product_id = str(request.POST.get('productid'))
        product=get_object_or_404(Product, id=product_id)
        basket.add(product=product)
        response = JsonResponse({'test':product_id})
        return response
    else:
        return HttpResponse("Error")


выше - мнения

class Basket():
    def __init__(self,request):
        self.session=request.session
        basket = self.session.get('skey')
        if 'skey' not in request.session:
            basket = self.session['skey'] = {}
        self.basket=basket

    def add(self,product):
        product_id = (product.id)

        if product_id not in self.basket:
            self.basket[product_id] = {'price':product.price}

        self.session.modified = True

выше представлен python-файл basket.py

Я ожидал получить некоторые данные из шаблона в cookies. Но я продолжаю получать ошибку 500

ошибка

Вернуться на верх