с помощью Django 2 Я пытаюсь добавить приложение для корзины покупок в свой проект django. Я получаю это сообщение об ошибке: Реверс для 'add_cart' с аргументами '(' ',)' не найден. Попробован 1 шаблон (ов): ['cart / add / (? P [0-9] +) / $']
Из моего понимания и проведенных исследований я думаю, что моя проблема в том, что я не вводюправильные URL в тегах шаблона для ссылки на мои просмотры. Но я всего 4 недели в Django и немного потерян.
Я попытался изменить "{% url 'cart_remove' cart_item.product.id%}" и "{% url 'cart_add' cart_item.product.id%} "tags.
Я попытался настроить уровень приложения и проекта urls.py.
Я пытался изменить base.html, cart.html
Я пытался изменить представления и несколько раз просматривал каждый файл, пытаясь обнаружить ошибку или опечатку.
Я уже 5 часов что-то меняю, но ничего не получается. как я уже сказал, я думаю, что это проблема с моими тегами шаблона. Я считаю, что я сбит с толку и пытаюсь связать не то, что нужно.
cart.html
{% for cart_item in cart_items %}
<tr>
<td>{{cart_item.product.name}}</td>
<td>{{cart_item.product.brand}}</td>
<td>{{cart_item.product.description}}</td>
<td>€{{cart_item.product.price}}</td>
<td>{{cart_item.sub_total}}</td>
<td>{{cart_item.quantity}}</td>
<td><a href="{% url 'cart_remove' cart_item.product.id%}">
<span class="glyphicon glyphicon-minus-sign"></span></a></td>
<td><a href="{% url 'add_cart' cart_item.product.id %}">
<span class="glyphicon glyphicon-plus-sign"></span></a></td>
</tr>
{% endfor %}
функция add_cart в корзине / views.py
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)
if cart_item.quantity < cart_item.product.stock:
cart_item.quantity += 1
cart_item.save()
else:
messages.add_message(request, messages.INFO,
'Sorry, no more of this item available')
except CartItem.DoesNotExist:
cart_item = CartItem.objects.create(
product = product,
quantity = 1,
cart = cart
)
cart_item.save()
return redirect('cart_detail')
корзина / urls.py
from django.urls import path
from . import views
urlpatterns = [
path('add/<int:product_id>/', views.add_cart, name='add_cart'),
path('', views.cart_detail, name='cart_detail'),
path('remove/<int:product_id>/', views.cart_remove, name='cart_remove'),
path('full_remove/', views.full_remove, name='full_remove'),
]
Шаблонpaths
'DIRS': [os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'shop', 'templates/'),
os.path.join(BASE_DIR, 'cart', 'templates/'),],
Уровень проекта urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('landing.urls')),
path('shop/', include('shop.urls')),
path('cart/', include('cart.urls')),
]
Мой ожидаемый результат - отображение целевой страницы при подключении к локальному серверу и загрузке страницы shop.html. когда я нажимаю на ссылку магазина в моей навигационной панели. В настоящий момент я получаю сообщение об ошибке: для 'add_cart' с обратными аргументами '(' ',)' не найдено. Попробовано 1 рисунков: ['cart / add / (? P [0-9] +) / $']