Django Generic Views基于日期的URLconf

时间:2012-06-05 03:27:40

标签: python django datetime django-generic-views

尝试自学Django但遇到困难。 通用视图似乎是一个好主意,但我个人觉得文档有时有点神秘(也许我很乖))。 所以我一直在尝试使用基于日期的泛型视图,特别是ArchieveIndexView。

我甚至试图关注一些nondjangoproject.com示例,但仍然存在问题。 我使用了this site.

中提供的示例

这是我目前的project/urls.py 我也是在这一点,不要担心模式匹配,只是试图让它发挥作用。

from django.conf.urls import patterns, include, url
from django.views.generic.dates import ArchiveIndexView
from blog.models import Entry

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', ArchiveIndexView.as_view('date_field': 'pub_date', 'queryset': Entry.objects.all())),

    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    url(r'^admin/', include(admin.site.urls)),
)

通过此设置,我在描述ArchiveIndexView类的行中不断收到无效语法错误。 如果我注释掉这一行,问题就会消失。如果我将URL解耦到适当的应用程序,我会得到同样的错误。

错误提示我只是有一些不合适的地方,逗号或其他东西,但我还没有得出结论。

谢谢!

2 个答案:

答案 0 :(得分:0)

使用以下代码

from django.conf.urls import patterns, include, url
from django.views.generic.dates import ArchiveIndexView
from blog.models import Entry

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', ArchiveIndexView.as_view({'date_field': 'pub_date', 'queryset': Entry.objects.all()})),

    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    url(r'^admin/', include(admin.site.urls)),
)

你似乎忘记了url中dict所需的{}大括号(r'^'',ArchiveIndexView.as_view('date_field':'pub_date','queryset':Entry.objects.all())), 线。

答案 1 :(得分:0)

阿。我解决了自己的问题,感谢shiva的一点推动。

字典有效但仅适用于extra_content参数。 它只是在我试图复制的网站上完成,并且在文档中有额外的内容,所以我一直忽略那个明显的问题。

from django.conf.urls import patterns, include, url
from django.views.generic.dates import ArchiveIndexView
from blog.models import Entry

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', ArchiveIndexView.as_view(date_field='pub_date', queryset=Entry.objects.all())),

    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    url(r'^admin/', include(admin.site.urls)),
)

只需要睡在上面......