Обратный для ‘cart_detail’ не найден. ‘cart_detail’ не является допустимой функцией просмотра или именем шаблона

#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, но по-прежнему отображается та же ошибка