我有一个简单的(我希望如此)关于典型Django网站结构的问题。我必须使用一些混合到其他典型静态页面的“Django驱动”页面来重构我的网站。
我想使用这些模板制作一些模板和很多页面。
我的问题是:
为每个页面提供不同内容的最佳方式是什么? 我现在想的是使用相同的模板在我的URL conf中使用不同的页面并修改View中的内容。但是,我认为在视图中“硬编码”我的内容是非常不自然的。
有没有办法在我的模板中定义内容区域,例如,在“管理”面板中编辑它们?
我认为必须有更好的方法。
谢谢!
修改 的 也许Flatpages可以帮助完成我的任务。但是确实存在一种方法来添加与模板特定部分相关的“内容区域”吗?我只能对主要内容区域做好准备。
答案 0 :(得分:3)
您的“内容区域”与django的模板块有何不同?您可以在布局文件中定义类似的内容:
base.html
{% block overridable %}Default content{% endblock overridable %}
在您的模板中,您可以像这样扩展它:
view.html
{% extends "base.html" %}
{% block overridable %} Overrided by view {% endblock overridable %}
答案 1 :(得分:0)
您可以使用通用视图,我衷心鼓励您。他们很棒。查看django docs for generic views。但是对于需要不同模板的不同页面,是的,这就是网站的工作方式。
Django不是“文件轻” - 它通过组合许多小文件来工作。在视图控制器中反对硬编码HTML是完全正确的 - 这通常是不好的做法。您将为每个视图创建一个模板,但实际上,您有多少视图?即使在大型应用程序中,内置或定制的通用视图无法处理的视图数量也会非常少。