Нет обратного совпадения «ошибка при отрисовке шаблона»

#html #django #bootstrap-4

Вопрос:

Реверс для «all_products» не найден. «all_products» не является допустимой функцией представления или именем шаблона.

 <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
     <li><a class="dropdown-item" href="{% url "store:all_products" %}">All</a></li>
     {% for c in categories %}
         <li {% if category.slug == c.slug %}class="selected" {% endif %}>
             <a class="dropdown-item" href="{{ c.get_absolute_url }}">{{ c.name|title }}</a>
         </li>
     {% endfor %}
 </ul>
 

вот моя моя защита в views.py :

 def all_products(request):
    products = Product.products.all()
    return render(request, 'store/home.html', {'products': products})
 

мой urls.py:

 from django.urls import path
from . import views

app_name = 'store'

urlpatterns = [
    path('', views.all_products, name = 'all products'),
    path('item/<slug:slug>/', views.product_detail, name='product_detail'),
    path('search/<slug:category_slug>/', views.category_list, name='category_list'),]
 

Проект urls.py:

 from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('store.urls', namespace='store')),]

if settings.DEBUG:
urlpatterns  = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 

Комментарии:

1. покажи свою urls.py

2. я добавил свой urls.py

3. работает ли это без store: него ?

4. нет, это не вотк !! то же сообщение об ошибке

5. получаю ту же ошибку там..? обратная трассировка ошибок общего доступа

Ответ №1:

Вы пытаетесь получить доступ http://localhost:8000/ или http://localhost:8000/store ?

И тебе следует измениться

path('', views.all_products, name = 'all products'), для

path('', views.all_products, name = 'all_products'),

Ответ №2:

В этой строке вашего шаблона

  • <a class=»выпадающий список» href=»{% url «магазин:all_products» %}»>Все
  • должно быть указано допустимое имя, т. е. {% url «пространство имен:имя» %} здесь вы использовали all_products в качестве имени, но URL-адрес с этим именем не определен.пожалуйста, измените имя первого URL-адреса в urls.py чтобы:

     path('', views.all_products, name = 'all_products'),