Django样板模板代码

时间:2010-07-14 20:56:49

标签: python django

我是一个django新手,在创建我的第一个项目时,我已经意识到我的很多样板代码(我页面上的列表)。我必须在每个视图中重新创建它们,我试图坚持使用DRY,但我发现自己每次都会重写代码。有没有办法从我的基本视图继承并只修改一些对象?

谢谢, 詹姆斯

5 个答案:

答案 0 :(得分:3)

是的,您需要查看template inheritance,它允许您在模板之间共享公共元素,以及{% include %}模板标记,它可以让您创建可包含的可重复使用的模板“代码段”在其他模板中。

编辑:重新阅读问题,听起来您正在谈论您在视图函数/方法中使用的样板代码,您正在使用它来生成由多个模板共享的上下文。在这种情况下,mipadi的答案是正确的:查看上下文处理器。

答案 1 :(得分:3)

您可能希望使用context processor进行此项工作。

答案 2 :(得分:3)

对于最近的文章列表等,custom template tags是您需要的。虽然上下文处理器会自动使用列表填充您的上下文,但模板标记实际上可以执行此操作,并为列本身创建整个HTML标记。

答案 3 :(得分:1)

对于重复出现的大块静态html,您可以使用include模板标记:

{% include 'static/some_file.html' %}

包含存储在模板文件系统中,就像模板一样。

答案 4 :(得分:0)

如果您由于某些原因决定使用上下文处理器(此解决方案在此处看起来很合理),您可以始终将一些常用逻辑封装到util函数中并在视图中使用它们。

您还可以查看Generic views - 这是使用您的代码“保持干净”的好方法