django - No Reverse Match Why? -
i error whenever try open localhost:8000 happens homepage of app i'm working on.
noreversematch @ / reverse 'category_detail' arguments '()' , keyword arguments '{}' not found. 1 pattern(s) tried: ['category/(?p<slug>[\\-\\w]+)/$']
below {% url %} use in template, models.py, urls.py , views.py
what happening? doing wrong?
#in template. <a href="{% url 'category_detail' %}" class="button tiny">view</a> #my urls.py django.conf.urls import patterns, url . import views urlpatterns = patterns('', url(r'^$', views.home.as_view(), name='home'), url(r'^categories/$', views.mycategory.as_view(), name='all_categories'), url(r'^category/(?p<slug>[-\w]+)/$', views.categorydetail.as_view(), name='category_detail'), url(r'^tip/(?p<slug>[-\w]+)/$', views.toolkitdetail.as_view(), name='toolkit_detail'), ) #my models.py django.db import models django.core.urlresolvers import reverse class category(models.model): slug = models.slugfield() title = models.charfield(max_length=250) heading = models.charfield(max_length=750) description = models.textfield() link = models.urlfield() def get_absolute_url(self): return reverse('category_detail', kwargs={'slug': self.slug}) #my views.py class mycategory(listview): model = category context_object_name = 'category' template_name = 'category.html' class categorydetail(detailview): slug_field = 'slug' model = category slug_url_kwarg = 'slug' context_object_name = 'category' template_name = 'category_detail.html'
the above summation of problem. please assistance appreciated. i'm sure clear enough problem, since stackoverflow won't let me post without adding more text, i'm doing so. think excerpt above self explanatory problem. think i'm released post now.
your url name 'category_detail' has compulsory parameter - slug. in template write:
<a href="{% url 'category_detail' category.slug %}" class="button tiny">view</a>
as model have special method generating url can simple:
{{ category.get_absolute_url }}
Comments
Post a Comment