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)