将Django视图拼凑在一起

时间:2009-12-29 17:19:49

标签: python django

将个别应用视图视为可以拼凑在一起形成更大网站的HTML块是一种好习惯吗?如果没有,假设每个人使用不同的模板集,那么从项目到项目重用应用程序视图的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

使用template_name kwarg定义视图的一般做法。这允许覆盖默认模板。这在通用视图中很常见。

#my reusable view
def list_items(request, template_name="items.html"):
  items=Item.objects.all()
  return render_to_response(template_name,
    {'items': items},
    context_instance=RequestContext(request))

#some other view
from my.reusable.views import list_items

def list_special(request, template_name="spectial_items.html"):
  return list_items(request, template_name=template_name)

答案 1 :(得分:0)

你的问题有点过于笼统。

这样做的一般方法包括:

  • 扩展可重用应用的模板
  • 将新模板名称传递给视图(可重用应用程序应接受该参数)
  • 同时将extra_context传递给reusable-generic-view
  • 使用您自己的视图创建extra_context并从您的视图中返回可重复使用的视图。

答案 2 :(得分:0)

通常每个应用程序都应提供基本功能的视图 - 应用程序可以完全控制用户和页面。

可以在基本页面布局中显示的功能(例如“我博客中的最​​后5个帖子”)将是模板标签的完美用例 - 我通常使用简单的inclusion tags。因此,您不会将多个视图合并到一个模板中,但总是有一个视图处理请求,并且可以使用模板标记聚合所有内容。

相关问题