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,不同的视图的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何将相同的功能扩展到多个视图?

Django Queryset 不同视图的相同模板

Django 在不同的视图中更新相同的模型

django上的几个页面(在不同的应用程序中)相同的块

在多个 django 模板文件中显示相同 html 块的最佳 DRY 方法

Django 视图打开不同的内容