Django - 相同的 html,不同的视图
Posted
技术标签:
【中文标题】Django - 相同的 html,不同的视图【英文标题】:Django - same html, different views 【发布时间】:2014-04-05 02:23:48 【问题描述】:我希望在我的所有模板中都有一个 html 块(例如用于基本表单提交的侧边栏),这可以通过使用块在 html 文件上轻松实现。
但是,我怀疑的不是模板之间的重复,而是视图之间的重复。由于所有模板的功能都是相同的,因此为我拥有的每个视图定义请求处理(来自侧栏的提交)真的很无聊(而且编程很糟糕)!我该如何处理?我应该(并且可以)制作一个专门用于处理模板的“全方位”部分的视图吗?
欢迎任何建议,
提前致谢
【问题讨论】:
【参考方案1】:丹尼尔指的是Inclusion Tag
基本上,custom template tag 用于像您这样的场景(...代码可重用性以及许多其他优势)
这篇文章也可能有帮助:Django Custom Inclusion Tags
另一种方法是使用template inheritance
- 创建一个基本模板,该模板定义布局,并覆盖将针对特定视图更改的代码块。
这里是一个模板继承的例子:https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance
【讨论】:
问题是,我的问题不在于模板重用,而在于视图。由于每个模板都有那段代码,所以每个视图都必须有关于该模板块的代码。 没有。您不必将其包含在视图中。它只是在模板中调用,而不是在视图中。 在链接中可以看到如何使用自定义模板标签(注意在视图中不需要做任何事情)【参考方案2】:使用自定义模板标签 - 可能是包含标签。
【讨论】:
以上是关于Django - 相同的 html,不同的视图的主要内容,如果未能解决你的问题,请参考以下文章