Django 是什么导致以下模板错误';无效的块标记:';blocktrans';,预期';elif'';其他';或';endif';?
是什么导致了以下模板错误Django 是什么导致以下模板错误';无效的块标记:';blocktrans';,预期';elif'';其他';或';endif';?,django,django-templates,Django,Django Templates,是什么导致了以下模板错误 In template /var/www/userreg/tagging/templates/registration/login.html, error at line 153 Invalid block tag: 'blocktrans', expected 'elif', 'else' or 'endif' 143 : 144 : 145 : <td> 146 : 147 : </td>
In template /var/www/userreg/tagging/templates/registration/login.html, error at line 153
Invalid block tag: 'blocktrans', expected 'elif', 'else' or 'endif'
143 :
144 :
145 : <td>
146 :
147 : </td>
148 : </tr>
149 : </table>
150 : </td>
151 : <td style="text-align:center;">
152 : {% if socialaccount.providers %}
153 : <p> {% blocktrans with site.name as site_name %} Please sign in with your
existing acounts through {% endblocktrans %}
154 :
155 : <div class="socialaccount_ballot">
156 :
157 : <ul class="socialaccount_providers">
158 : {% include "socialaccount/snippets/provider_list.html" %}
159 : </ul>
160 :
161 : <div class="login-or">{% trans 'or' %}</div>
162 :
163 : </div>
Exception Type: TemplateSyntaxError at /accounts/login/
Exception Value: Invalid block tag: 'blocktrans', expected 'elif', 'else' or 'endif'
已安装的应用程序:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'registration',
'django.contrib.humanize',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.linkedin')
已安装的中间件:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
我的模板
{% extends "base.html" %}
{% load i18n %}
{% load account %}
{% load url from future %}
{% block title %}Log in{% endblock %}
{% block content_header %}Log in{% endblock %}
{% block main_content %}
{% if socialaccount.providers %}
<p>
{% blocktrans with site.name as site_name %}
Please sign in with your existing acounts through
{% endblocktrans %}
<div class="socialaccount_ballot">
<ul class="socialaccount_providers">
{% include "socialaccount/snippets/provider_list.html" %}
</ul>
<div class="login-or">{% trans 'or' %}</div>
</div>
{% include "socialaccount/snippets/login_extra.html" %}
{% blocktrans %}
<a href="{{ signup_url }}">sign up</a> for a {{site_name}} account and sign in below:
{% endblocktrans %}
</p>
{% endif %}
{% endblock %}
{%extends“base.html”%}
{%load i18n%}
{%load account%}
{%从未来加载url%}
{%block title%}登录{%endblock%}
{%block content_header%}登录{%endblock%}
{%block main_content%}
{%if socialaccount.providers%}
{%blocktrans,site.name作为site\u name%}
请通过使用现有帐户登录
{%endblocktrans%}
{%include“socialaccount/snippets/provider_list.html”%}
{%trans'或“%”
{%include“socialaccount/snippets/login_extra.html”%}
{%blocktrans%}
对于{site_name}}帐户,请在下面登录:
{%endblocktrans%}
{%endif%}
{%endblock%}
只是{%endblock%}
,而不是{%endblocktrans%}
您在以下位置定义了站点名称
:
{% blocktrans with site.name as site_name %}
Please sign in with your existing acounts
{% endblocktrans %}
{% blocktrans %}
<a href="{{ signup_url }}">sign up</a> for a {{site_name}} account and sign in below:
{% endblocktrans %}
你没有引用它的地方
但您在以下位置引用了site\u name
:
{% blocktrans with site.name as site_name %}
Please sign in with your existing acounts
{% endblocktrans %}
{% blocktrans %}
<a href="{{ signup_url }}">sign up</a> for a {{site_name}} account and sign in below:
{% endblocktrans %}
{%blocktrans%}
对于{site_name}}帐户,请在下面登录:
{%endblocktrans%}
您在打开blocktrans
标记时未声明和定义site\u name
正如我从您的回溯中所看到的,django没有抱怨,因此错误可能来自
socialaccount/snippets/provider\u list.html
或socialaccount/snippets/login\u extra.html
发布标记(模板),以及异常。。。这就是我们所需要的。如果你在第152行的话,它似乎还没有关闭(根据我所看到的)。也许您应该尝试在末尾添加{%endif%}下次请自己格式化您的问题。我还想知道这是不是太本地化了。你的模板中有{%loadi18n%}
吗?我已经给了{%endif%},但是它还是会出错如果我单独给{%endblock%}它会给你更多的错误,比如:TemplateSyntaxError at/accounts/login/'blocktrans'不允许其他块标记(见u'endblock'))在它里面你是对的,我的错误。检查前面的答案。他想说,在关闭第一个blocktrans后,您不能使用site_名称。当你使用它时,你必须像那样重新定义它。试着把所有的东西放在一个blocktrans而不是两个blocktrans中。