我正在使用基于 django 1.1 的“Practical Django 2nd edition”书练习 django 我安装了 django 1.5 所以我应该弄清楚 django 版本之间的变化并编写正确的代码(thanx django 文档)
django 1.5 中的通用视图发生了很大变化,但最终我明白了。我的 urls.py 中有四个网址,如下所示:
urlpatterns = patterns('',
url(r'^(?P<year>\d{4})/$', EntryYearArchiveView.as_view(), name='coltrane/Entry_Archive_year'),
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/$', EntryMonthArchiveView.as_view(),name='coltrane/Entry_month_Archive'),
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$',
EntryDateDetailView.as_view(), name='coltrane/Entry_Date_Detail'),
url(r'$', ArchiveIndexView.as_view(model=Entry, date_field="pub_date"), name='coltrane/Entry_Archive'),
)
和每个 url 的视图。如您所见, ArchiveViewIndex的 url 只是一个 $ 符号,因此地址
example.com/weblog/
应该运行它。而EntryYearArchiveView 获得一年。但有些不对劲!的地址example.com/weblog/2013/
仍然运行ArchiveIndexView但不是EntryYearArchiveView。EntryMonthArchiveView也出错了。YearArchive 模板的名称应该是Entry_archive_year。我在这里搞什么鬼?