Загрузка данных


Base.html

<!DOCTYPE html>
<html lang="ru">
<head>
    {% block title %}<title>Мир книг</title>{% endblock %}
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    {% load static %}
    <link rel="stylesheet" href="{% static 'css/styles.css' %}">
    {% block head %}
    <img src="{% static 'images/logotip.jpg' %}" style="width:100px; height:100px;" align="absmiddle">
    <font size=7 color="blue">Сайт "Мир книг"</font>
    {% endblock %}
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <div class="col-sm-2">
                {% block sidebar %}
                <ul class="sidebar-nav">
                    <li><a href="{% url 'index' %}">Главная страница</a></li>
                    <li><a href="{% url 'books' %}">Все книги</a></li>
                    <li><a href="{% url 'authors' %}">Все авторы</a></li>
                    <li><a href="{% url 'authors_add' %}">Редактировать авторов</a></li>
                    <li><a href="{% url 'book_create' %}">Добавить книгу</a></li>
                    
                    {% if user.is_authenticated %}
                        <li>Пользователь: {{ user.get_username }}</li>
                        <li><a href="{% url 'my-borrowed' %}">Мои заказы</a></li>
                        <li><a href="{% url 'logout' %}?next={{ request.path }}">Выход</a></li>
                    {% else %}
                        <li><a href="{% url 'login' %}?next={{ request.path }}">Вход</a></li>
                    {% endif %}
                </ul>
                {% endblock %}
            </div>
            <div class="col-sm-10">
                {% block content %}{% endblock %}
                
                {% block pagination %}
                    {% if is_paginated %}
                        <div class="pagination">
                            <span class="page-links">
                                {% if page_obj.has_previous %}
                                    <a href="{{ request.path }}?page={{ page_obj.previous_page_number }}">Предыдущая</a>
                                {% endif %}
                                <span class="page-current">
                                    Страница {{ page_obj.number }} из {{ page_obj.paginator.num_pages }}.
                                </span>
                                {% if page_obj.has_next %}
                                    <a href="{{ request.path }}?page={{ page_obj.next_page_number }}">Следующая</a>
                                {% endif %}
                            </span>
                        </div>
                    {% endif %}
                {% endblock %}
                
                {% block footer %}
                    <p>Copyright ООО "Люди и книги", 2020. Все права защищены</p>
                {% endblock %}
            </div>
        </div>
    </div>
</body>
</html>



Index. Html

{% extends "base_generic.html" %}
{% block content %}
<h1>Главная страница</h1>
<p>Добро пожаловать в <em>Мир книг</em>, Это очень простой веб-сайт, написанный на Django.</p>
<h2>Динамический контент</h2>
<p>База данных сайта Мир книг содержит следующее количество записей:</p>
<ul>
    <li><strong>Количество книг:</strong> {{ num_books }}</li>
    <li><strong>Количество экземпляров книг:</strong> {{ num_instances }}</li>
    <li><strong>Количество экземпляров книг в заказе:</strong> {{ num_instances_available }}</li>
    <li><strong>Количество авторов книг:</strong> {{ num_authors }}</li>
</ul>
<p>Количество посещений данной страницы - {{ num_visits }}</p>
{% endblock %}

Edit1. Html

{% extends "base_generic.html" %}
{% block content %}
<h4>Редактируем: {{ author.first_name }} {{ author.last_name }}</h4>
<form method="POST">
    {% csrf_token %}
    <p>Имя: <input type="text" name="first_name" value="{{ author.first_name }}"></p>
    <p>Фамилия: <input type="text" name="last_name" value="{{ author.last_name }}"></p>
    <p>Дата рождения: <input type="date" name="date_of_birth" value="{{ author.date_of_birth|date:'Y-m-d' }}"></p>
    <p>Дата смерти: <input type="date" name="date_of_death" value="{{ author.date_of_death|date:'Y-m-d' }}"></p>
    <input type="submit" value="Сохранить">
</form>
{% endblock %}

Book_list.html

{% extends "base_generic.html" %}
{% block content %}
<h1>Список книг в БД</h1>
{% if book_list %}
    <ul>
        {% for book in book_list %}
        <li>
            <a href="{{ book.get_absolute_url }}">{{ book.title }}</a> ({{ book.genre }})
            <a href="{% url 'book_update' book.id %}">Изменить</a> , 
            <a href="{% url 'book_delete' book.id %}">Удалить</a>
        </li>
        {% endfor %}
    </ul>
{% else %}
    <p>В базе данных нет книг</p>
{% endif %}
{% endblock %}


Book_detailded.html

{% extends "base_generic.html" %}
{% block content %}
<h1>Название книги: {{ book.title }}</h1>
<p><strong>Жанр:</strong> {{ book.genre }}</p>
<p><strong>Аннотация:</strong> {{ book.summary }}</p>
<p><strong>ISBN:</strong> {{ book.isbn }}</p>
<p><strong>Язык:</strong> {{ book.language }}</p>
{% for author in book.author.all %}
    <p><strong>Автор:</strong> {{ author.first_name }} {{ author.last_name }}</p>
{% endfor %}
<div style="margin-left:20px;margin-top:20px">
    <h4>Количество экземпляров книг в БД</h4>
    {% for copy in book.bookinstance_set.all %}
        <hr>
        <p class="{% if copy.status.name == 'На складе' %} text-success 
                  {% elif copy.status.name == 'В заказе' %} text-danger 
                  {% else %} text-warning 
                  {% endif %}">
            <strong>Статус:</strong> {{ copy.status.name }}
        </p>
        <p><strong>Издательство:</strong> {{ copy.imprint }}</p>
        <p class="text-muted"><strong>Инвентарный номер:</strong> {{ copy.inv_nom }}</p>
    {% endfor %}
</div>
{% endblock %}


Author list. Html

{% extends "base_generic.html" %}
{% block content %}
<h1>Список авторов в БД</h1>
{% if author_list %}
    <ul>
        {% for author in author_list %}
        <li>
            {{ author.last_name }} {{ author.first_name }}
            ({{ author.date_of_birth }} - {{ author.date_of_death }})
        </li>
        {% endfor %}
    </ul>
{% else %}
    <p>В базе данных нет авторов</p>
{% endif %}
{% endblock %}



Authors_add.html

{% extends "base_generic.html" %}
{% block content %}
<h3>Список авторов в БД</h3>
<table>
    {% for a in author %}
    <tr>
        <td>{{ a.id }}</td>
        <td>{{ a.first_name }}</td>
        <td>{{ a.last_name }}</td>
        <td><a href="{% url 'edit' a.id %}">Изменить</a> | <a href="{% url 'delete' a.id %}">Удалить</a></td>
    </tr>
    {% endfor %}
</table>
<h3>Добавить в БД автора книги</h3>
<form method="POST" action="{% url 'create' %}">
    {% csrf_token %}
    <table>{{ form.as_table }}</table>
    <input type="submit" value="Сохранить">
</form>
{% endblock %}


Books_forms.html

{% extends "base_generic.html" %}
{% block content %}
<form action="" method="post">
    {% csrf_token %}
    <table>{{ form.as_table }}</table>
    <input type="submit" value="Сохранить" />
</form>
{% endblock %}


Book_confirm_delete.html

{% extends "base_generic.html" %}
{% block content %}
<h1>Удаление книги</h1>
<p>Вы уверены, что хотите удалить книгу: "{{ book }}"?</p>
<form action="" method="POST">
    {% csrf_token %}
    <input type="submit" value="Да, удалить" />
</form>
{% endblock %}



Bookinstance_list_borrower_user.html

{% extends "base_generic.html" %}
{% block content %}
<h1>Взятые книги</h1>
{% if bookinstance_list %}
    <ul>
        {% for bookinst in bookinstance_list %}
        <li class="{% if bookinst.is_overdue %}text-danger{% endif %}">
            <a href="{% url 'book-detail' bookinst.book.pk %}">{{ bookinst.book.title }}</a>
            (Вернуть до: {{ bookinst.due_back }})
        </li>
        {% endfor %}
    </ul>
{% else %}
    <p>Нет книг со статусом В ЗАКАЗЕ.</p>
{% endif %}
{% endblock %}


Login. Html

{% extends "base_generic.html" %}
{% block content %}
    {% if form.errors %}
        <p>Ваше имя пользователя и пароль не совпадали. Пожалуйста, попробуйте еще раз.</p>
    {% endif %}
    <form method="post" action="{% url 'login' %}">
        {% csrf_token %}
        <table>
            <tr><td>{{ form.username.label_tag }}</td><td>{{ form.username }}</td></tr>
            <tr><td>{{ form.password.label_tag }}</td><td>{{ form.password }}</td></tr>
        </table>
        <input type="submit" value="Вход" />
        <input type="hidden" name="next" value="{{ next }}" />
    </form>
    <p><a href="{% url 'password_reset' %}">Утерян пароль?</a></p>
{% endblock %}


Logged_out.html

{% extends "base_generic.html" %}
{% block content %}
    <p>Выход из системы!</p>
    <a href="{% url 'login' %}">Нажмите здесь, чтобы снова войти в систему.</a>
{% endblock %}

Запуск