Джанго Аллах - шаблон, включаемый в base.html, вызывает RecursionError - PullRequest
0 голосов
/ 06 июля 2018

Я использую allauth для обработки всей моей аутентификации. С помощью этого приложения каждому компоненту аутентификации присваивается собственный шаблон. Тем не менее, я хочу включить регистрационную форму во все другие шаблоны. то есть форма регистрации присутствует в / account / login /, / account / password / change ... и т.д ...

Я решил добиться этого, включив signup.html в base.html, который расширен во всех других шаблонах. Как это:

base.html

...
<h4 class="card-title text-center">Register</h4>
{% include "account/signup.html" %}
...

счет / base.html

{% extends "base.html" %}

счет / 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>

счет / 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 %}
...

Этот код вызывает следующую ошибку, которая возникает, только когда я добавляю тег {% include%} в base.html

enter image description here

1 Ответ

0 голосов
/ 13 ноября 2018

думаю код ниже:

{% include "account/signup.html" %}

должно быть в "account / base.html", а не в "base.html".

У вас есть ошибка, потому что ваш "base.html" вызывает "account / signup.html", а ваш "account / signup.html" вызывает "account / base.html", который называет себя "base.html". У вас есть петля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...