Неверная передача данных из jQuery - Python

Формулировка задачи:

Здравствуйте. Проблема в том, что JQuery видит data-product_alias = "{{ product.alias }}" нормаль, берёт из БД(Items), а когда передаю в БД(ProductInBasket) из JQuery передаётся, что-то не то - если в функции basketAddingпишу print(data.get('product_alias')) он принтит - tea
<div id="money_tea_te">                                    <form id="buy" action="{% url 'basketAdding' %}">{% csrf_token %}
                                        <div class="slect_mass" id="select_mass">                                            <select name="price_prod" id="weight">                                                <option value="50">50 гр</option>                                                <option value="100">100 гр</option>                                                <option value="200">200 гр</option>                                                <option value="300">300 гр</option>                                                <option value="400">400 гр</option>                                                <option value="500">500 гр</option>                                                <option value="1000">1000 гр</option>                                            </select>                                        </div> 
                                        <input type="submit" id="submit_buy" class="submit_buy" name="submit_buy"                                               value="В корзину" data-product_alias = "{{ product.alias }}" data-product-name = "{{ product.name }}"                                         data-product-price = "{{ product.price }}">                                        <input type="submit" id="one_buy" class="one_buy" name="one_buy"                                               value="Купить в один клик">                                        <input type="image" id="favorite" class="to_fav" name="submit_fav"                                               title="В избранное" src="{% static 'res/img/star.png' %}">                                    </form>                                </div>
var buy_form = $('#buy');
    buy_form.on('submit', function (def) {
        def.preventDefault();
        console.log('123');
        var mass = $('#weight').val();
        var submit_btn = $('#submit_buy');
        var product_alias = submit_btn.data('product_alias');
        var product_name = submit_btn.data('product-name');
        var product_price = Math.round(submit_btn.data('product-price') * mass / 100);
        var data = {};
 
        data.product_alias = product_alias;
        data.mass = mass;
        data.name = product_name;
        data.price = product_price;
        var csrf_token = $('#buy [name="csrfmiddlewaretoken"]').val();
        data["csrfmiddlewaretoken"] = csrf_token;
 
        var url = buy_form.attr('action');
        console.log(data);
        $.ajax({
            url: url,
            type: 'POST',
            data: data,
            cache: true,
            success: function (data) {
                console.log('ok');
                console.log(data.proTotalNumb)
            },
            error: function () {
                console.log('error');
            }
        })
    });
class Items(models.Model):
    name = models.CharField(max_length=15, verbose_name='Название товара', default='')
    price = models.IntegerField(default=0, verbose_name='Цена')
    # image = models.CharField(max_length=255, verbose_name='Картинка', default='')
    image = models.ImageField(null=True, blank=True, upload_to='image/', verbose_name='Изображение')
    alias = models.SlugField(verbose_name='Alias товара', default='')
    rating = models.FloatField(default=0, verbose_name='Рейтинг')
 
    def absoluteUrl(self):
        return '{}'.format(self.alias)
 
    class Meta:
        verbose_name = "Товар"
        verbose_name_plural = "Товары"
 
    def __str__(self):
        return 'Товар %s' % self.name
class ProductInBasket(models.Model):
    session_key = models.CharField(max_length=128, blank=True, null=True, default=None)
    order = models.ForeignKey(Order, blank=True, null=True, default=None)
    product = models.ForeignKey(Items, blank=True, null=True, default=None)
    is_active = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)
 
    def __str__(self):
        if(self.product):
            return '%s' % self.product.name
        else:
            return '%s' % self.id
 
    class Meta:
        verbose_name = 'Товар в корзине'
        verbose_name_plural = 'Товары в корзине'
И самое главное -
def basketAdding(request):
    return_dict = dict()
    session_key = request.session.session_key
    data = request.POST
    print(request.POST)
    product_alias = data.get('product_alias')
    productMass = data.get('mass')
    productName = data.get('product_name')
    productPrice = data.get('price')
 
    new_product = ProductInBasket.objects.create(session_key=session_key, product_alias=product_alias) #если строку убарть в консоле ошибки нет, но и в БД естественно ничего не добавляется
    proTotalNumb = ProductInBasket.objects.filter(session_key=session_key, is_active=True).count()
    return_dict['proTotalNumb'] = proTotalNumb
    return JsonResponse(return_dict)
В консоли браузера при возове формы сначала пишет - Object {product_alias: "ivan-tea", mass: "50", name: "Иван чай", price: 229, csrfmiddlewaretoken: "rtGnQewuj6kZPSoxI4uxDH1F9YxCxylALLNLbbOk0XxB8xZR3hqGEfYcTn8HcYqA"} Потом - POST http://127.0.0.1:8000/basketAdding 500 (Internal Server Error) error В PyCharm - TypeError: 'product_alias' is an invalid keyword argument for this function. В чём может быть проблема?

Код к задаче: «Неверная передача данных из jQuery - Python»

textual
def basketAdding(request):
    return_dict = dict()
    session_key = request.session.session_key
    data = request.POST
    print(request.POST)
    product_alias = data.get('product_alias')
    productMass = data.get('mass')
    productName = data.get('name')
    productPrice = data.get('price')
 
 
    new_product = ProductInBasket.objects.create(session_key=session_key, product=Items.objects.get(alias=product_alias), mass=productMass, name=productName, price=productPrice)
 
    proTotalNumb = ProductInBasket.objects.filter(session_key=session_key, is_active=True).count()
    return_dict['proTotalNumb'] = proTotalNumb
    return JsonResponse(return_dict)

5   голосов, оценка 4.400 из 5


СОХРАНИТЬ ССЫЛКУ