如何在 Django 模板中使用带有多个块的 if else 语句?

问题描述 投票:0回答:0

我想根据我收到的上下文数据加载不同的元标记。

如您所见,在情况 1 中,我从

'2. name'
检索名称,而在情况 2 中,它来自
'name'
。当我使用这个 if-else 语句时,我遇到一个错误,指出不允许使用多个块。

{% extends 'base.html' %}
{% load static %}
{% load custom_filters %}

{% if context.api_name == 'case 1' %}
    {% block meta_keywords %}
        <meta name="keywords" content="some keywords">
    {% endblock %}
    {% block meta_description %}
        <meta name="description" content="{{ context.json_data | get_key:'2. name' |default:'Unknown' }}">
    {% endblock %}

{% elif context.api_name == "case 2" %}
    {% block meta_keywords %}
        <meta name="keywords" content="some keywords">
    {% endblock %}

    {% block meta_description %}
        <meta name="description" content="{{ context.json_data | get_key:'name' |default:'Unknown' }}">
    {% endblock %}
{% endif %} 


TemplateSyntaxError
django.template.exceptions.TemplateSyntaxError: 'block' tag
with name 'meta_keywords' appears more than once

我也尝试使用

with
来设置临时变量,但我无法让它工作

django django-templates
© www.soinside.com 2019 - 2024. All rights reserved.