Django检索扩展模板的数据

2024-03-29 07:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序中有一个基本模板,一个包含用户数据的配置文件模板,还有一堆他们可以浏览的其他页面。 每个用户都有一个市场。我希望在每个配置文件页面上显示市场名称,而不是绕过每个页面的块标记

base.html

<span class="title navbar-item">
    {% block market_name %}{% endblock %}
</span>

每个个人资料页面.html

{% block market_name %}{{market.name}}{% endblock market_name %}

1条回答
网友
1楼 · 发布于 2024-03-29 07:33:31

您可以简单地通过以下方式实现:

<span class="title navbar-item">
    {% block market_name %}{{ market.name }}{% endblock %}
</span>

或者,如果您永远不会覆盖它,只需忽略该块:

<span class="title navbar-item">
    {{ market.name }}
</span>

只要每个视图都经过一个market.name,这就不是问题

然而,将市场传递给每一个环境可能会很麻烦。您可以使用context processor [Django-doc]。您可以在任何应用程序中实现这种上下文处理器,例如:

# app/context_processors.py

def market(request):
    return {
        'market': …
    }

然后在settings.py中注册上下文处理器:

# settings.py

# …

TEMPLATES = [
    {
        # …
        'OPTIONS': {
            'context_processors': [
                # …
                'app.context_processors.market'
            ]
        }
        # …
    }
]

相关问题 更多 >