【问题标题】:New class based generic views and urlpatterns新的基于类的通用视图和 urlpatterns
【发布时间】:2012-12-14 11:02:14
【问题描述】:

以前的通用视图,我有这样的东西

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 的通用视图。首先导入所有这些视图并让模式(''空前缀是正确的方法吗? 如果我将所有应用程序迁移到这种新的视图样式,我更愿意以正确的方式做事:)

谢谢

【问题讨论】:

  • 您的 urls.py 中存在打印错误。将 link_info_dict 更改为 entry_info_dict,反之亦然。

标签: django django-views


【解决方案1】:

这看起来不错 - 你确定没有其他问题吗?这与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() 的任何参数都将覆盖类上设置的属性。

【讨论】:

  • 谢谢!我想您可以将模型作为参数或查询集传递...在这种情况下,我使用查询集以便以后能够更改管理器。它似乎工作正常。
猜你喜欢
  • 2012-11-15
  • 2011-10-04
  • 2012-02-21
  • 2012-10-27
  • 2013-06-16
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多