我正在使用allauth来处理我的所有身份验证。使用该应用程序,每个身份验证功能都将获得自己的模板。但是,我想在所有其他模板中包括注册表。即注册表格位于/ account / login /,/ account / password / change ...等...
我决定通过在所有其他模板中扩展的base.html中包含signup.html来实现这一目标。像这样:
base.html
...
<h4 class="card-title text-center">Register</h4>
{% include "account/signup.html" %}
...
account / base.html
{% extends "base.html" %}
account / signup.html
{% extends "account/base.html" %}
{% load i18n %}
<p>{% blocktrans %}Already have an account? Then please <a href="{{ login_url }}">sign in</a>.{% endblocktrans %}</p>
{% for message in messages %}
<span style="color:red;">{{ message }}</span>
{% endfor %}
<form class="signup" id="signup_form" method="post" action="{% url 'account_signup' %}">
{% csrf_token %}
{% for field in form %}
<div id="input-group">
{{ field }}
</div>
{% endfor %}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<div class="card-footer text-center">
<input type="submit" class="btn" value='{% trans "Get started" %}'>
</div>
</form>
account / login.html
{% extends "account/base.html" %}
{% load static %}
{% load i18n %}
{% load account socialaccount %}
{% get_providers as socialaccount_providers %}
{% block general_notice_modal %}
{% endblock general_notice_modal %}
{% block login-modal %}
...
此代码会导致以下错误,仅当我在 base.html
中添加{%include%}标签时才会发生答案 0 :(得分:0)
我认为下面的代码:
{% include "account/signup.html" %}
应位于“ account / base.html”中,而不应位于“ base.html”中。
您有一个错误,因为您的“ base.html”呼叫“ account / signup.html”,而您的“ account / signup.html”呼叫“ account / base.html”,后者称自己为“ base.html”。你有一个循环。