I am newbie in django .. and i dont understand what is reason this 404 error
I have Page not found (404) when i try go to link No Category matches the given query.
code:
models.py:
JavaScript
x
8
1
.
2
def get_absolute_url(self):
3
return ('article_url', None, { 'slug': self.slug })
4
5
.
6
def get_absolute_url(self):
7
return ('category_url', None, { 'slug': self.slug })
8
views.py:
JavaScript
1
16
16
1
def main(request):
2
return render_to_response('main.html',
3
{'categories': Category.objects.all(),
4
'articles': Article.objects.all()[:4]})
5
6
def article_view(request, slug):
7
return render_to_response('article_view.html',
8
{'article': get_object_or_404(Article, slug=slug)})
9
10
11
def category_view(request, slug):
12
category = get_object_or_404(Category, slug=slug)
13
return render_to_response ('category_view.html',
14
{'category': category, 'articles': Article.objects.filter(category=category)
15
[:4]})
16
urls.py
JavaScript
1
6
1
urlpatterns = patterns('',
2
url(r'^$', 'main.views.main'),
3
url(r'^(?P<slug>[^.]+)/$', 'main.views.category_view', name='category_url'),
4
url(r'^(?P<slug>[^.]+)/$', 'main.views.article_view', name='article_url'),
5
)
6
Advertisement
Answer
Most likely, you don’t have category
object with slug that you are specifying in the url. Due to this, the line
JavaScript
1
2
1
category = get_object_or_404(Category, slug=slug)
2
in your category_view()
gives you 404
page.