Django:如何在HTML模板中导入变量
我有一个Django应用程序,我想在我的模板中把所有出现“公司ID”的地方都改掉。这个过程可能会很麻烦,因为我得在每个提到“公司ID”的模板里都做这个修改。所以我想到了一个办法,创建一个新的文件来存储这个信息,这样我就可以方便地自定义公司ID。
config.py
company_no = "Company id"
这个方法可以在我的forms.py文件中使用。我可以通过下面的方式导入company_no
:
forms.py
from mmc.config import company_no
但是,我该如何在模板中做到同样的事情呢?在模板中导入company_no,有没有什么办法可以实现?
3 个回答
4
这就是上下文处理器的用途。你可以在settings.py文件里定义你的公司名称,然后写一个上下文处理器,把这个名称从settings.py中导入,并以字典的形式返回。这样,在每个模板中都能使用这个名称(只要你在渲染模板时使用RequestContext)。
1
正如Blender所说,当你渲染模板时,需要把变量作为上下文的一部分传进去。你可以创建一个字典或者一个命名元组,把一些常用的项目存储在一个函数加载的配置里。
如果有很多模板需要显示相同的数据,你还应该考虑使用模板继承。这样的话,你可以有一些方法来加载与特定基础模板对应的上下文内容。