You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django模板中结合if-else使用多block加载不同meta标签

解决Django模板中同名Block重复定义的错误

Django模板系统不允许同一个模板里重复定义同名的block标签,哪怕是在if-else的不同分支里也不行,这就是你遇到TemplateSyntaxError的原因。

正确的做法是把每个block只定义一次,然后在block内部用条件判断输出不同内容:

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

{% block meta_keywords %}
    <meta name="keywords" content="some keywords">
{% endblock %}

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

如果不同场景下meta_keywords的内容也需要区分,同样可以在block内部加条件逻辑:

{% block meta_keywords %}
    {% if context.api_name == 'case 1' %}
        <meta name="keywords" content="专属case1的关键词">
    {% elif context.api_name == "case 2" %}
        <meta name="keywords" content="专属case2的关键词">
    {% else %}
        <meta name="keywords" content="默认关键词">
    {% endif %}
{% endblock %}

内容的提问来源于stack exchange,提问作者JAdel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 08:31:03