This commit is contained in:
Martin Quarda 2024-10-13 16:03:30 +02:00
parent ffde4c889e
commit 533fe7c1ce
2 changed files with 14 additions and 9 deletions

View File

@ -8,6 +8,7 @@ from django.contrib.auth.models import User as DjangoUser
from django.contrib.auth import authenticate from django.contrib.auth import authenticate
from django.contrib.auth import login as auth_login, logout as auth_logout from django.contrib.auth import login as auth_login, logout as auth_logout
from django.core.mail import send_mail, mail_admins, EmailMessage from django.core.mail import send_mail, mail_admins, EmailMessage
from django.db.utils import IntegrityError
from django.utils.datastructures import MultiValueDictKeyError from django.utils.datastructures import MultiValueDictKeyError
from datetime import date, datetime, timedelta from datetime import date, datetime, timedelta
from weasyprint import HTML from weasyprint import HTML
@ -354,12 +355,16 @@ def cart_add(request):
cart.save() cart.save()
else: else:
cart = user.cart cart = user.cart
cart_product = CartProduct( try:
product=Product.objects.get(id=_id), cart_product = CartProduct(
cart=cart, product=Product.objects.get(id=_id),
quantity=1, cart=cart,
) quantity=1,
cart_product.save() )
cart_product.save()
except IntegrityError as e:
return HttpResponse('{"status":"failed", "reason":"Předmět už v košíku je!"}', content_type='application/json')
return HttpResponse('{"status":"success", "reason":"Úspěšně přidáno do košíku."}', status=200)
def results(request): def results(request):

View File

@ -81,14 +81,14 @@ class Main extends Component {
} }
addToCart = (id) =>{ addToCart = (id) =>{
fetch(addr_prefix + "/api/cart/add?id=" + id).then(resp => resp.json()).then(json=>{ fetch(addr_prefix + "/api/cart/add?id=" + id).then(resp => resp.json()).then(json=>{
if(json.reason){ if(json.status == "failed"){
this.setState({ this.setState({
status_text: data.reason, status_text: json.reason,
status: "failed", status: "failed",
}) })
}else{ }else{
this.setState({ this.setState({
status_text: data.success, status_text: json.reason,
status: "success", status: "success",
cart: [...this.state.cart, id], cart: [...this.state.cart, id],
}); });