Правильно ли я пишу URL тега шаблона? - PullRequest
1 голос
/ 13 октября 2019

с помощью 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] +) / $']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...