django - 如何将模型值传递给不同应用程序中的基本模板?
问题描述
我的应用程序中有一个名为 index.html 的 base.html 模板。我有一个模型,这个模板从我的模型中接收一些数据,称为页脚
class footer(models.Model):
credits = models.CharField(max_length=200, blank=True, default='')
phone = models.CharField(max_length=25, blank=True, default='')
email = models.CharField(max_length=25, blank=True, default='')
address = models.CharField(max_length=25, blank=True, default='')
country_city = models.CharField(max_length=25, blank=True, default='')
在同一个应用程序中,在文件夹模板中,我有模板 base.html,它从我的模型页脚中获取一些值
<li>
<a class="foot-in" href="mailto:{{footer.email}}">{{ footer.email }}</a>
</li>
<li>
<p>{{ footer.phone }}</p>
</li>
当我在名为 index 的应用程序中运行 url 时,一切顺利,但是当我在另一个应用程序中使用相同的模板时,url 不会显示来自模型的信息。
我怎样才能使 base.html 模板在我网站的不同应用程序中运行良好?
我希望我的问题很清楚。在此先感谢您的帮助
解决方案
您需要为此编写一个自定义上下文处理器。例如:
# context processor
# assuming it is in path /project/app/context_processors.py
def get_footer_context(request):
footer = Footer.objects.last()
return {
'footer': footer
}
然后更新context_processors
in settings.py
:
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
# rest of the context_processors
'app.context_processors.get_footer_context', # <-- Add your context processor
],
},
},
]
推荐阅读
- git - 如何在 Git 挂钩脚本中检测 GUI 应用程序是否正在启动提交?
- azure - azure 函数是否适合长时间运行的任务?
- python - 意外的结果树遍历 - Python
- java - 为什么 Hibernate 会抛出无效的列异常?我的查询在 Oracle 中运行良好,但在 Java 代码中引发异常
- javascript - 如何使用 JavaScript 创建电子商务产品价格度量计算器?
- c# - IQueryable 执行 LINQ 查询后返回空结果
- spring-boot - 使用 SpringDoc webflux 支持时无法显示 Swagger/OpenApi 文档
- sql-server - 允许在 Oracle 中为 SSRS 报告提供多个值
- jestjs - 无法使用 jest 在 vuejs 中获取 vuex 存储 getters 数据
- ios - 如何从不同的函数调用 TextField