2012-12-29 34 views
0

与前通用的看法,我有这样的事情新的基于类的通用视图和URL模式

link_info_dict = { 
    'queryset' : Link.objects.all(), 
    'date_field' : 'pub_date', 
} 
patterns('django.views.generic.date_based', 
    url(r'^links/$', 'archive_index', link_info_dict, 'coltrane_link_archive_index'), 
.... 
) 
与新的基于通用视图

现在,我发现以下似乎工作:

from django.views.generic.dates import ArchiveIndexView 
.... 
urlpatterns = patterns('', 
url(r'^links/$', ArchiveIndexView.as_view(**link_info_dict), name='coltrane_link_archive_index'), 
.... 
) 

我想知道如果我做事情的最佳方式。 因为我必须调用'as_view'方法,所以我必须先导入视图,所以我不能“分解”“django.views.generic.date_based”。我实际上使用几乎所有的基于date_based的通用视图。导入所有这些意见,并让模式(''空前缀的正确方法? 如果我将所有的应用程序迁移到这种新的风格的意见,我宁愿做正确的方式:)

谢谢

+1

您的urls.py文件存在误印。将link_info_dict更改为entry_info_dict,反之亦然。 –

回答

2

这看起来很好 - 你确定没有其他错误吗?这与examples排队。

from django.views.generic.dates import ArchiveIndexView 

from myapp.models import Article 

urlpatterns = patterns('', 
    url(r'^archive/$', 
     ArchiveIndexView.as_view(model=Article, date_field="pub_date"), 
     name="article_archive"), 
) 

,并将其与documentation

传递给as_view(任何参数对齐)将覆盖在类中设置属性。

+0

谢谢!我想你可以通过模型作为参数或查询集...在这种情况下,我使用查询集以后能够更改管理器。它似乎工作正常。 –

+0

没问题 - 很高兴能帮到你!请标记我的答案;) – rh0dium

相关问题