首页 > 解决方案 > Django:如何设置站点名称并将其显示在所有页面标题的末尾

问题描述

例如,有 3 个不同标题的 html 模板:

<title>Page1</title>
<title>Page2</title>
<title>Page3</title>

如何使用变量(或其他方式)在末尾附加站点名称的所有标题?:

<title>Page1 - {{Here is the configurable Site Name}}</title>
<title>Page2 - {{Here is the configurable Site Name}}</title>
<title>Page3 - {{Here is the configurable Site Name}}</title>

标签: djangodjango-templates

解决方案


您通常通过在基本模板中设置站点名称来执行此操作,然后从其他模板扩展。

假设你有这个 base.html 模板

<html>
<head>
   <title>{% block page-title %}{% endblock %} - My Site</title>
</head>
...

然后,您可以从其他页面扩展此模板:

{% extends "base.html" %}
{% block page-title %}My first page{% endblock %}
...

这个解决方案是许多 Django 项目中常见的。

现在,如果您想使站点名称可配置,例如,从您的 Django 设置中,您将需要一种方法将其传递给您的视图以进行渲染。由于这是您将为每个视图执行的操作,因此最好在上下文处理器中执行此操作,这样您就不必手动执行此操作。


推荐阅读