#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:
В этой строке вашего шаблона
должно быть указано допустимое имя, т. е. {% url «пространство имен:имя» %} здесь вы использовали all_products в качестве имени, но URL-адрес с этим именем не определен.пожалуйста, измените имя первого URL-адреса в urls.py чтобы:
path('', views.all_products, name = 'all_products'),