I am using django 1.5 when i access http://example.com:8000/dashboard/projects/ i am getting error NoReverseMatch at /dashboard/projects/ Reverse for 'project-details' with arguments '(1,)' and keyword arguments '{}' not found.
dashboard/views.py
class ProjectlistView(ListView):
"""
Project list page
"""
template_name = 'projects.html'
model = Project
context_object_name = 'projects'
paginate_by = 5
class ProjectDetailsView(DetailView):
"""
Project details page
"""
template_name = 'project-details.html'
model = Project
dashboard/urls.py
urlpatterns = patterns('',
url(regex=r'^$', view=DashboardView.as_view(), name='index'),
url(regex=r'projects/$', view=ProjectlistView.as_view(), name='projects'),
url(regex=r'project/(?P<pk>\d+)/$', view=ProjectDetailsView.as_view(), name='project-details'),
)
my_project/urls.py
urlpatterns = patterns('',
url(r'^dashboard/', include('frontend.urls', namespace='dashboard'),),
url(r'admin/' ,include(admin.site.urls)),
)
projects.html
{% url 'project-details' project.pk %}
You defined your url patterns as using a named group, so you need to pass named arguments to the
url
tag, ie{% url 'project-details' pk=project.pk %}
.Also, you want to start your url patterns with a caret to make sure they dont match more than needed, ie:
^project/$
and^project/(?P<pk>\d+)/$
.