python - Django 中的 WordPress 小部件类型功能

标签 python django

过去几个月我一直在使用 django。看来,如果我需要在模板中添加一些新值,那么实现这一点的唯一方法就是直接通过 View 函数传递它,或者传递一个可以以某种方式用于检索该信息的对象。

如果我想从模板中“提取”信息怎么办?考虑以下场景。我有一个与 Application1 关联的模板“template1”。假设在此模板的一列中,我想从第二个应用程序“Application2”导入信息。目前我知道的唯一方法是使用 Application1 的 View 函数从 Application2 中提取该信息。对于每个新应用程序,我需要更改 Application1 的 View 函数。因此,如果我想继续添加来自不同应用程序(2、3、4 等)的信息,我需要继续更改 Application1 的 View 函数。这可能会变得很麻烦。

所以我想要的是类似Wordpress的小部件功能或Joomla的模块类型功能。简单的即插即用,可以从不同来源(应用程序)“提取”信息。 django 有内置的此类东西吗?

最佳答案

啊,您已经遇到了 Django(以及大多数 Python 模板框架)和 WordPress(以及大多数 PHP 框架)之间的根本区别之一。 PHP 拥有巨大的全局 namespace ,可以从页面创建过程中的几乎任何位置进行访问。另一方面,Python 则不然。我们许多人认为这是一件好事®。

但是,有时您希望在模板中使用更多的全局变量。为了实现这一点,您需要的是 context processor 。这是一个例程,它返回一个字典,每当您使用 RequestContext() 构建对模板的调用时,都会自动包含该字典。

您可能还想查看{% expr ... %} 。它可以让您摆脱故意弱化的 Django 模板引擎的“链条”。

关于python - Django 中的 WordPress 小部件类型功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5447266/

相关文章:

python - Matplotlib/Mplfinance 'y_on_right' 的正确用法?

python - tastypie get_list 过滤器查询集

python - If 语句在模板文件中不起作用

python - 如何将这个带有二进制数据的 curl 写入 python?

python - 检查字典键是否有空值

python - 如何通过在 python xarray 中添加额外维度将一个数组拆分为多个数组?

基于日期部分反转的 Python 列表排序列表

python - Django通过MultiSelectField值过滤QueryString?

python - 从 Django 数据库中提取数据

c++ - `django model` 类型抽象是否可用于 C++?