Django 1.5通用视图

时间:2013-06-02 00:08:11

标签: django django-views django-1.5

我正在使用基于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 。 我在这里乱搞什么?

1 个答案:

答案 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'),

正确匹配网址格式。