【问题标题】:Django Generic Views Date-Based URLconfDjango 通用视图基于日期的 URLconf
【发布时间】:2012-06-09 02:37:21
【问题描述】:

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

我什至尝试过一些非 djangoproject.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 解耦到相应的应用程序,我会得到同样的错误。

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

谢谢!

【问题讨论】:

    标签: python django datetime django-generic-views


    【解决方案1】:

    啊。感谢 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)),
    )
    

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

    【讨论】:

      【解决方案2】:

      使用下面的代码

      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(r'^$', ArchiveIndexView.as_view('date_field': 'pub_date', 'queryset': Entry.objects.all())) 中 dict 所需的 {} 大括号, 行。

      【讨论】:

        猜你喜欢
        • 2011-08-06
        • 2012-01-28
        • 2013-04-02
        • 2010-10-14
        • 1970-01-01
        • 2013-06-21
        • 2010-12-28
        • 2011-09-09
        • 2011-07-29
        相关资源
        最近更新 更多