Django模板代码样板
我刚开始学习Django,在创建我的第一个项目时,我发现我页面侧边的很多重复代码(就是那些列表)都需要在每个视图里重新写一遍。我想遵循“不要重复自己”的原则,但每次还是得重新写这些代码。请问有没有办法从我的基础视图中继承,只修改几个对象呢?
谢谢,
詹姆斯
5 个回答
3
如果你想要显示最近的文章列表等内容,自定义模板标签就是你需要的东西。上下文处理器会自动把列表填充到你的上下文中,而模板标签不仅可以做到这一点,还能为这个栏目生成完整的HTML代码。
3
是的,你需要了解一下模板继承,这个功能可以让你在多个模板之间共享一些共同的元素。另外,还有{% include %}
这个模板标签,它可以让你创建可以重复使用的模板“片段”,然后把这些片段放到其他模板里。
编辑: 再次阅读问题后,感觉你是在说你在视图函数或方法中用来生成多个模板共享的上下文的那部分重复代码。在这种情况下,mipadi的回答是正确的:你可以看看上下文处理器。
0
如果你出于某些原因不想使用上下文处理器(这个解决方案在这里看起来挺合理的),你可以把一些常用的逻辑封装成工具函数,然后在你的视图中使用它们。
你还可以看看通用视图 - 这是让你的代码保持简洁、避免重复的一个好方法。