NoReverseMatch at / Reverse для 'product' без аргументов не найдено - PullRequest
0 голосов
/ 08 мая 2020

У меня эта ошибка NoReverseMatch at / Reverse for 'product' with no arguments not found. 1 pattern(s) tried: ['product\\/(?P<slug>[^/]+)$'] при использовании Django шаблонов URL

Это мои шаблоны URL

    urlpatterns = [
    path('',HomeView.as_view(),name='home'),
    path('checkout/',checkout,name='checkout'),
    path('product/<str:slug>',ItemDetailView.as_view(),name='product'),
    ]

Это мой views.py

class ItemDetailView(DetailView):
model = Item
template_name = 'product.html'

Это мой models.py

class Item(models.Model):
title = models.CharField(max_length=100)
price = models.FloatField()
category = models.CharField(choices=CATEGORY_CHOICES,max_length=2)
label = models.CharField(choices=LABEL_CHOICES,max_length=1)
slug = models.SlugField()

def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('core:product',kwargs={'slug':self.slug})

Это моя база. html

 <li class="nav-item">
                        <a class="nav-link waves-effect" href="{% url 'core:checkout' %}" target="_blank">Checkout</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link waves-effect" href="{% url 'core:product' %}" target="_blank">Product</a>
                    </li>

1 Ответ

0 голосов
/ 08 мая 2020

Проблема заключается в base.html, вы пытаетесь получить URL-адрес с помощью {% url 'core:product' %}, но в своем urls.py вы также ожидаете slug. Вы должны передать эту переменную. ( документация )

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