#django #django-views
#django #django-views
Вопрос:
Вот моя кнопка Добавления в корзину HTML:`
<a href="{% url 'store:add_cart' product_detail.id %}"> </a>
Вот мой вид add_cart:
def add_cart(request, product_id):
product = Product.objects.get(id=product_id)
try:
cart = Cart.objects.get(cart_id=_cart_id(request))
except Cart.DoesNotExist:
cart = Cart.objects.create(
cart_id=_cart_id(request)
)
cart.save()
try:
cart_item = CartItem.objects.get(product=product, cart=cart)
cart_item.quantity = 1
cart_item.save()
except CartItem.DoesNotExist:
cart_item = CartItem.objects.create(
product=product,
quantity=1,
cart=cart,
)
cart_item.save()
return redirect('cart_detail')
И вот мой urls.py для add_cart и cart_detail:
app_name = 'store'
urlpatterns = [
path('', views.home, name='home'),
path('product-list/', views.product_list, name='product_list'),
path('cart/', views.cart_detail, name='cart_detail'),
path('cart/add/<int:product_id>', views.add_cart, name='add_cart'),
path('detail/<slug:product_slug>', views.product_detail, name='product_detail'),
path('category/<slug:category_slug>', views.home, name='products_by_category'),
]
Когда я нажимаю на кнопку добавить в корзину на странице сведений о моем продукте:
Я ПОЛУЧАЮ ЭТУ ОШИБКУ: обратный для ‘cart_detail’ не найден. ‘cart_detail’ не является допустимой функцией просмотра или именем шаблона. Что указывает на мое представление add_property -> return redirect (‘cart_detail’)
Я попытался изменить свой ‘cart_detail’ на ‘/ cart’ в представлениях, но затем он показывает, что в моей корзине нет товаров, хотя объекты модели Cart и Cart Item созданы.
ПОЖАЛУЙСТА, ПОМОГИТЕ РЕШИТЬ КАК МОЖНО СКОРЕЕвведите описание изображения здесьвведите описание изображения здесь
Комментарии:
1. попробуйте использовать обратное перенаправление (reverse(‘cart_detail’)), и если / cart ничего не показывает, то ошибка может быть в вашей функции просмотра cart_detail
2. Спасибо, что обратились! Я пытался использовать обратный, но это не сработало Это моя функция просмотра cart_detail: def cart_detail(запрос, всего = 0, счетчик = 0, cart_items = Нет): попробуйте: cart = Cart.objects.get(cart_id=_cart_id(запрос)) cart_items = CartItem.objects.filter(корзина=cart, is_active=True) для cart_item в элементах корзины: итого = (cart_item.product.discounted_price * cart_item.количество) счетчик = cart_item.количество, за исключением ObjectDoesNotExist: pass
3. продолжение … template = ‘store/cart.html ‘ context = { «cart_items»: cart_items, «total»: total, «counter»: counter, } возвращает рендеринг (запрос, шаблон)
4. Исправлен контекст также при отображении cart_detail, но по-прежнему отображается та же ошибка