В качестве хобби, я решил открыть для себя мир веб-разработки, попутно освещая свои успехи, а может и неудачи на пути к просветлению…

В настоящее время я публично описываю процесс создания веб-сайта с нуля на Django и Bootstrap, где задача разработать такие приложения как: аккаунты, вопросы, статьи и книги.

В проекте решаются только реальные задачи, которые почему-то так любят обходить стороной в учебной литературе.

Создание веб-сайта с нуля на Django и Bootstrap. Аккаунты. Смена пароля и адреса электронной почты. Шаблоны

Сергей Серов

Шаблоны

В заключение осталось реализовать шаблоны для писем, декоратора и представлений.

Шаблон письма смены пароля

В директории templates переходим в accounts затем в подкаталог vcode и создаем шаблон письма change_password.txt:

{% extends 'accounts/vcode/base.txt' %}

{% block action %}СМЕНА ПАРОЛЯ{% endblock %}

{% block link %}{% url 'accounts:change_password_confirm' vcode %}{% endblock %}

Шаблон письма смены адреса электронной почты

В данном подкаталоге так же создаем второй шаблон письма change_email.txt:

{% extends 'accounts/vcode/base.txt' %}

{% block action %}СМЕНА АДРЕСА ЭЛЕКТРОННОЙ ПОЧТЫ{% endblock %}

{% block link %}{% url 'accounts:change_email_confirm' vcode %}{% endblock %}

Шаблон декоратора

В подкаталоге accounts создаем файл auth_required.html:

{% extends 'base.html' %}

{% load core_tags %}

{% block title %}Уведомление{% endblock %}

{% block main %}
    <div class="accounts-auth-required">
        <h1>Уведомление</h1>

        {% alert_tag danger %}
            Вам необходимо авторизоваться. Возможно сеанс истек или Вы зашли на эту страницу по ошибке.
        {% end_alert_tag %}
    </div>
{% endblock %}

Шаблон смены адреса электронной почты

В подкаталоге accounts создаем файл change_email.html:

{% extends 'base.html' %}

{% block title %}Смена адреса электронной почты{% endblock %}

{% block main %}
    <div class="accounts-change-email">
        <h1>Смена адреса электронной почты</h1>

        <form action="{% url 'accounts:change_email' %}" method="post">
            {% csrf_token %}
            {% include 'core/form_fields.html' %}
            <button type="submit" class="btn btn-success">Изменить</button>
        </form>
    </div>
{% endblock %}

Шаблон подтверждения смены адреса электронной почты

В подкаталоге accounts создаем файл change_email_confirm.html:

{% extends 'base.html' %}

{% load core_tags %}

{% block title %}Смена адреса электронной почты (подтверждение){% endblock %}

{% block main %}
    <div class="accounts-change-email-confirm">
        <h1>Смена адреса электронной почты (подтверждение)</h1>

        {% if status == 'waiting' %}
            {% alert_tag success %}
                Мы выслали проверочный код на Ваш <strong>новый адрес электронной почты</strong> и с нетерпением ждем подтверждения.
            {% end_alert_tag %}
            <p>Если по каким-то причинам письмо не пришло Вы можете повторно воспользоваться <a href="{% url 'accounts:change_email' %}">процедурой изменения адреса электронной почты</a>.</p>
            <p>А если Вы видите это сообщение постоянно, то можете обратиться за помощью к администрации проекта.</p>

        {% elif status == 'success' %}
            {% alert_tag success %}
                Поздравляем! Ваш адрес электронной почты успешно изменен.
            {% end_alert_tag %}

        {% elif status == 'invalid' %}
            {% alert_tag danger %}
                Ваш код неверен или устарел, проверочные коды, как правило, не отличаются высокой продолжительностью жизни…
            {% end_alert_tag %}
            <p>Вы можете повторно воспользоваться <a href="{% url 'accounts:change_email' %}">процедурой изменения адреса электронной почты</a>.</p>
        {% endif %}
    </div>
{% endblock %}

Шаблон смены пароля

В подкаталоге accounts создаем файл change_password.html:

{% extends 'base.html' %}

{% block title %}Смена пароля{% endblock %}

{% block main %}
    <div class="accounts-change-password">
        <h1>Смена пароля</h1>

        <form action="{% url 'accounts:change_password' %}" method="post">
            {% csrf_token %}
            {% include 'core/form_fields.html' %}
            <button type="submit" class="btn btn-success">Изменить</button>
        </form>
    </div>
{% endblock %}

Шаблон подтверждения смены пароля

В подкаталоге accounts создаем файл change_password_confirm.html:

{% extends 'base.html' %}

{% load core_tags %}

{% block title %}Смена пароля (подтверждение){% endblock %}

{% block main %}
    <div class="accounts-change-password-confirm">
        <h1>Смена пароля (подтверждение)</h1>

        {% if status == 'waiting' %}
            {% alert_tag success %}
                Мы выслали проверочный код на Ваш адрес электронной почты и с нетерпением ждем подтверждения.
            {% end_alert_tag %}
            <p>Если по каким-то причинам письмо не пришло Вы можете повторно воспользоваться <a href="{% url 'accounts:change_password' %}">процедурой изменения пароля</a>.</p>
            <p>А если Вы видите это сообщение постоянно, то можете обратиться за помощью к администрации проекта.</p>

        {% elif status == 'success' %}
            {% alert_tag success %}
                Поздравляем! Ваш пароль успешно изменен.
            {% end_alert_tag %}

        {% elif status == 'invalid' %}
            {% alert_tag danger %}
                Ваш код неверен или устарел, проверочные коды, как правило, не отличаются высокой продолжительностью жизни…
            {% end_alert_tag %}
            <p>Вы можете повторно воспользоваться <a href="{% url 'accounts:change_password' %}">процедурой изменения пароля</a>.</p>
        {% endif %}
    </div>
{% endblock %}