Django 1.5 NoReverseMatch at /dashboard/projects/

904 Views Asked by At

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 %}
1

There are 1 best solutions below

1
On

You defined your url patterns as using a named group, so you need to pass named arguments to the urltag, 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+)/$.