Django предотвращает спам пользователей в представлении (добавить в корзину)

У меня есть представление (добавить в корзину), которое полагается на сессии для добавления или обновления товара в корзину, И я использую javascript fetch API, так что процесс дыры является асинхронным, это работает хорошо, но я заметил, что пользователь может спамить кнопку/форму добавления в корзину, так что лучший способ предотвратить это?

def API_View(request):
    
    article_slug = request.POST.get('article_slug')
    if article_slug:
        
        try:
            article = Article.objects.get(slug = article_slug)
        except Article.DoesNotExist:
            raise Http404('article does not exist ')
        

        my_cart = request.session.get('my_cart',None)
        if my_cart:

            if str(article.slug) in my_cart:
                item = my_cart[str(article.slug)]
                item['quantity'] += 1
                item['status'] = 'updated'
                request.session.modified = True
                print(' quantity updated')
                print(my_cart)
            else :
                my_cart[str(article.slug)] ={
                    'slug' :str(article.slug),
                    'quantity' :1,
                    'status' :'Added'
                }
                request.session.modified = True
            
                print('new item in cart ')     
                print(my_cart)      
        else:

            request.session['my_cart'] = {
                str(article.slug):{
                    'slug' :str(article.slug),
                    'quantity' :1,
                    'status' :'Added'
                }
            }
            my_cart =  request.session['my_cart']
            print('first to  cart')
            print(my_cart)
            
    
        
    return JsonResponse(my_cart,safe=False)
Вернуться на верх