Django:无效的块标记:';endif';

Django:无效的块标记:';endif';,django,Django,以下是相关的模板标记和html: from django import template from django.conf import settings register = template.Library() @register.inclusion_tag('auth_backend/templatetags/extends_layout.html') def extends_layout(): layout_template = getattr(settings, 'AUT

以下是相关的模板标记和html:

from django import template
from django.conf import settings

register = template.Library()


@register.inclusion_tag('auth_backend/templatetags/extends_layout.html')
def extends_layout():
    layout_template = getattr(settings, 'AUTHBACKEND_LAYOUT_TEMPLATE', '')
    return {'layout': layout_template}


{% if layout %}
  {% extends layout %} <<<<<<<<<<<<< Problem here
{% endif %}
Django:无效的块标记:“endif”

如果我删除
{%extends layout%}
则错误消失,只是我的模板标记现在为空


我做错了什么?

不可能将标记放在if语句中。发件人:

如果在模板中使用
{%extends%}
,则它必须是该模板中的第一个模板标记。否则,模板继承将无法工作

通过使用带有extends标记的变量,而不是inclusion标记,您可能能够实现所需的功能。可以在视图中设置变量,也可以使用上下文处理器

def my_view(request):
    extends = getattr(settings, 'AUTHBACKEND_LAYOUT_TEMPLATE', 'default_base.html')
    return render(request, 'my_template.html', {'extends': extends })
然后在您的
my_template.html
中:

{% extends extends %}

不可能将标记放入if语句中。发件人:

如果在模板中使用
{%extends%}
,则它必须是该模板中的第一个模板标记。否则,模板继承将无法工作

通过使用带有extends标记的变量,而不是inclusion标记,您可能能够实现所需的功能。可以在视图中设置变量,也可以使用上下文处理器

def my_view(request):
    extends = getattr(settings, 'AUTHBACKEND_LAYOUT_TEMPLATE', 'default_base.html')
    return render(request, 'my_template.html', {'extends': extends })
然后在您的
my_template.html
中:

{% extends extends %}

不可能将标记放入if语句中。发件人:

如果在模板中使用
{%extends%}
,则它必须是该模板中的第一个模板标记。否则,模板继承将无法工作

通过使用带有extends标记的变量,而不是inclusion标记,您可能能够实现所需的功能。可以在视图中设置变量,也可以使用上下文处理器

def my_view(request):
    extends = getattr(settings, 'AUTHBACKEND_LAYOUT_TEMPLATE', 'default_base.html')
    return render(request, 'my_template.html', {'extends': extends })
然后在您的
my_template.html
中:

{% extends extends %}

不可能将标记放入if语句中。发件人:

如果在模板中使用
{%extends%}
,则它必须是该模板中的第一个模板标记。否则,模板继承将无法工作

通过使用带有extends标记的变量,而不是inclusion标记,您可能能够实现所需的功能。可以在视图中设置变量,也可以使用上下文处理器

def my_view(request):
    extends = getattr(settings, 'AUTHBACKEND_LAYOUT_TEMPLATE', 'default_base.html')
    return render(request, 'my_template.html', {'extends': extends })
然后在您的
my_template.html
中:

{% extends extends %}