我正在使用基于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'),
)
和每个网址的观点。正如您所看到的那样, ArchiveViewIndex 的网址只是一个$符号所以地址
example.com/weblog/
应该执行此操作。 EntryYearArchiveView获得一年。
但有些事情是错的! example.com/weblog/2013/
的地址仍然运行 ArchiveIndexView ,但不是 EntryYearArchiveView 。 EntryMonthArchiveView 也出错了。 YearArchive模板的名称应为 Entry_archive_year 。
我在这里乱搞什么?
答案 0 :(得分:0)
将评论标记为未来参考的答案。
更改
中的最后一个网址url(r'$', ArchiveIndexView.as_view(model=Entry, date_field="pub_date"), name='coltrane/Entry_Archive'),
到
url(r'^$', ArchiveIndexView.as_view(model=Entry, date_field="pub_date"), name='coltrane/Entry_Archive'),
正确匹配网址格式。