当前位置:  开发笔记 > 编程语言 > 正文

在Django通用视图中指定不同的模板名称

如何解决《在Django通用视图中指定不同的模板名称》经验,为你挑选了1个好方法。

我的urls.py中的代码用于我的通用视图;

infodict = {
'queryset': Post.objects.all(),
'date_field': 'date',
'template_name': 'index.html',
'template_object_name': 'latest_post_list',
}

urlpatterns += patterns('django.views.generic.date_based',
(r'^gindex/$', 'archive_index', infodict),
)

因此,转到地址/ gindex /将使用带有'index.html'模板的通用视图.

但由于我在这个urlpattern中会有更多通用视图,我应该如何使用相同的infodict提供不同的模板名称?我不想使用大量的infodicts,我不能使用默认的模板名称.

请注意,这也适用于infodict中的模板对象名称.

谢谢你的帮助!

编辑:这是我关于stackoverflow的第一个问题之一,我对这些彻底的答案感到惊讶!我更喜欢使用我不知道的dict构造函数.我发现使用python文档有点困难,因为我找不到我正在寻找的东西!

再次感谢所有的答案和不同的方法.



1> Carl Meyer..:

使用dict()构造函数:

infodict = {
    'queryset': Post.objects.all(),
    'date_field': 'date',
    'template_name': 'index.html',
    'template_object_name': 'latest_post_list',
}

urlpatterns = patterns('django.views.generic.date_based',
    url(r'^gindex/$', 'archive_index', dict(infodict, template_name='gindex.html')),
    url(r'^hindex/$', 'archive_index', dict(infodict, template_name='hindex.html')),
)

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有