Заставить кнопку "Заказать" на странице "Подробности" работать - Django
Я разрабатываю свою платформу электронной коммерции с использованием django. Я реализовал функциональность заказа. Когда пользователь нажимает на кнопку добавить в корзину, все работает нормально. Но когда он нажимает на товар, чтобы получить более подробную информацию, когда он хочет нажать на кнопку добавления в корзину, она не реагирует. Я наделил ее такой же функциональностью, как и другие кнопки, прежде чем перейти на страницу подробностей одного товара. Похоже, что проблема в том, что она не находит правильный путь. Как я могу реализовать эту единственную кнопку.
Вот мой views.py
def processOrder(request):
transaction_id = datetime.datetime.now().timestamp()
data = json.loads(request.body)
print(data)
if request.user.is_authenticated:
customer = request.user
order, created = Order.objects.get_or_create(
customer=customer, complete=False)
total = order.get_cart_totals
order.transaction_id = transaction_id
if total == order.get_cart_totals:
order.complete = True
order.save()
if order.shipping == True:
print("Wrong")
ship = ShippingAddress(
customer=customer,
order=order,
firstname=data['shipping']['firstname'],
lastname=data['shipping']['lastname'],
address=data['shipping']['address'],
city=data['shipping']['city'],
zipcode=data['shipping']['zipcode']
)
ship.save(force_insert=True)
else:
print("User doesn't exist")
print('Data:', request.body)
return JsonResponse('Payment Submitted', safe=False)
Вот мой model.py
class Order(models.Model):
customer = models.ForeignKey(
User, on_delete=models.SET_NULL, null=True, blank=True)
date_ordered = models.DateTimeField(auto_now_add=True)
complete = models.BooleanField(default=False)
transaction_id = models.CharField(max_length=100, null=True)
def __str__(self):
return str(self.id)
@property
def shipping(self):
shipping = False
orderItems = self.orderitem_set.all()
for i in orderItems:
if i.product.digital == False:
shipping = True
return shipping
@property
def get_cart_totals(self):
orderitems = self.orderitem_set.all()
total = sum(item.get_total for item in orderitems)
return total
@property
def get_cart_items(self):
orderitems = self.orderitem_set.all()
total = sum(item.quantity for item in orderitems)
return total
class OrderItem(models.Model):
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True)
quantity = models.IntegerField(default=0, null=True, blank=True)
date_added = models.DateTimeField(auto_now_add=True)
Вот и мои пути url
path('cart', views.userCart, name='cart'),
path('checkout', views.checkout, name='checkout'),
path('update/', views.updateItem, name='update'),
Вот мой шаблон.html
<div class="details-single">
<h4 class="libhead">{{eachProduct.title}}</h4>
<div>{{eachProduct.description}}</div>
<div class="price" id="book-price">Ksh.{{eachProduct.price}}</div>
<div class="price" id="book-price">1 Litre</div>
<div class="wrap-book-buttons">
<button data-product="{{eachProduct.id}}" data-action="remove" class="AddToCart update-cart"
id="addToCart update-cart">Add To
Cart</button>
</div>
</div>