Django在通用视图中抛出404错误
我正在尝试在Django中设置一个基于日期的归档功能。按照教程的说明,我定义了网址,但是每当我想访问带有变量(比如月份或年份)的网址时,Django都会返回404错误。甚至连“找不到模板”的错误都没有出现。没有变量的普通网址工作得很好。
这是我更新过的网址配置:
from django.conf.urls.defaults import *
from zurichlive.zhl.models import Event
info_dict = {
'queryset': Event.objects.all(),
'date_field': 'date',
'allow_future': 'True',
}
urlpatterns += patterns('django.views.generic.date_based',
(r'events/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', dict(info_dict, slug_field='slug', template_name='archive/detail.html')),
(r'^events/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$', 'object_detail', dict(info_dict, template_name='archive/list.html')),
(r'^events/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/$','archive_day',dict(info_dict,template_name='archive/list.html')),
(r'^events/(?P<year>\d{4})/(?P<month>[a-z]{3})/$','archive_month', dict(info_dict, template_name='archive/list.html')),
(r'^events/(?P<year>)/$','archive_year', dict(info_dict, template_name='archive/list.html')),
(r'^events/$','archive_index', dict(info_dict, template_name='archive/list.html')),
)
当我访问 /events/2010/may/12/this-is-a-slug/ 时,我应该能看到 detail.html 模板,但实际上却出现了404错误。我哪里做错了呢?
我使用的是Django 1.1.2
2 个回答
0
再检查一下模板名称。
2
你在正则表达式里忘记加反斜杠了:
(r'events/(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$'
另外,你的URL正则表达式最后是以斜杠结尾的,所以你的URL应该是 /events/2010/may/12/this-is-a-slug/
。