#django-models
Вопрос:
Мой cart/urls.py код:
from django.urls import path
from .import views
urlpatterns = [
path('',views.cart, name ='cart'),
path('add_cart/<int:product.id/',views.add_cart, name ='add_cart'),
]
add_cart/views.py код:
def add_cart(request, products_id):
product= get_object_or_404(product, id = products_id) #get the product
try:
cart = Cart.objects.get(cart_id =_cart_id(request)) #get the cart using the cart_id present to the session
except Cart.DoesNotExist:
cart = Cart.objects.create(
cart_id = _cart_id(request)
)
cart.save()
try:
cart_item = CartItem.objects.get(product=product, cart=cart) #combine cart to the product thus to get individual cart
cart_item.quantity =1 #cart_item.quantity
cart_item.save()
except CartItem.DoesNotExist:
cart_item = CartItem.objects.create(
product = product,
quantity = 1,
cart = cart,
)
cart_item.save()
return redirect('cart')
store/product_detail.html:
<a href="{% url "add_cart" product.id %}" class="btn btn-primary"> <span
class="text">Add to cart</span> <i class="fas fa-shopping-cart"></i> </a>
Когда я ставлю product.id
, я получаю ошибку:
NoReverseMatch at /store/shoes/puma/
django.urls.Exception Value: Reverse for 'add_cart' with arguments '('',)' not found. 1 pattern(s) tried: ['cart/add_cart/<int:product\.id/
Ответ №1:
Ваш URL-адрес кажется недействительным. Попробуй:
path('add_cart/<int:product_id>/', views.add_cart, name='add_cart'),
Тогда ваш взгляд product_id
исходит из этого:
def add_cart(request, products_id):
product = get_object_or_404(product, id=product_id) #get the product
Соответствующие документы можно посмотреть здесь
]
Ответ №1:
Ваш URL-адрес кажется недействительным. Попробуй:
Тогда ваш взгляд product_id
исходит из этого:
Соответствующие документы можно посмотреть здесь