Я студент, изучающий python django.Ошибка Django для NoReverseMatch
Я столкнулся с нижеприведенным сообщением об ошибке.
NoReverseMatch at/
Reverse for 'product' with arguments '(2,)' and keyword arguments '{}' not found.
1 pattern(s) tried: ['$(?P<pk>[0-9]+)$']
Я попытался выполнить поиск и поиск со вчерашнего дня, но я действительно не знаю причины.
Не могли бы вы дать мне какой-либо совет или рекомендацию?
Django версия, который я использую, равен 1.7.
================================================================================================================= ==============================================
project_root/магазины/шаблоны/магазины/base.html
<!-- ** error occurs at this point ** -->
<li><a href="{% url 'shops:product' category.id %}" >
project_root/проект/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from django.conf import settings
urlpatterns = [
url(r'^$', include('shops.urls', namespace="shops")),
url(r'^admin/', include(admin.site.urls)),
]
if settings.DEBUG:
urlpatterns += [
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
]
project_root/магазины/urls.py
from django.conf.urls import url
from shops import views
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)$', views.ProductView.as_view(), name='product'),
]
project_root/магазины/views.py
from django.views.generic.base import TemplateView
from django.views.generic.list import ListView
from django.utils import timezone
from shops.models import Sex, Category, Product
class IndexView(TemplateView):
template_name = 'shops/index.html'
def get_context_data(self):
context = super(IndexView, self).get_context_data()
context['sex_list'] = Sex.objects.all()
context['category_list'] = Category.objects.all()
context['latest_product_list'] = Product.objects.order_by('-pub_date')[:5]
return context
class ProductView(ListView):
template_name = 'shops/product_list.html'
def get_context_data(self):
context = super(ProductView, self).get_context_data()
context['product_list'] = Product.objects.all()
return context
Попробуйте изменить свой 'project_root/project/urls.py' первый url на url (r '^', include ('shops.urls', namespace = "магазины")), ' – rfj001
Он работает ... Большое вам спасибо! : D –
Нет проблем! Я оставил ниже ответ, пытаясь объяснить, почему это фиксированные вещи. Вы можете пойти и принять его, чтобы показать, что это помогло :) – rfj001