Простой блог на Django - часть 17. Последние штрихи - настраиваем 404 страницу, проставляем ссылки.

В целом, функционал блога реализован, осталась самая мелочь - настроить стилизованную страницу 404 и проставить некоторые ссылки для удобства навигации. Начнём с базового шаблона index.html

Верхнее меню

Страница About у нас доступна по адресу /pages/about/ А значит изменения, с учётом того, что за это отвечает маршрут "pages:about", будут такими: 

<a class="nav-link" href="{% url 'pages:about' %}">About</a>

Аналогично поступаем и со страницей Contact:

<a class="nav-link" href="{% url 'contact' %}">Contact</a>

Личный кабинет

Ссылка на страницу Sample post нам не нужна, поскольку она в шаблоне выполняет роль заглушки - удаляем её. Вместо этого добавим в конец меню разделитель, а после него разместим ссылки для авторизации/регистрации и личного кабинета. Причём сделаем так, что если пользователь не авторизован, то будут отображаться ссылки для логина и регистрации, в другом случае - ссылка на личный кабинет. Выглядит это так:

<li style="color: #FFF;"class="separator"> | </li>
{% if request.user.is_authenticated %}
<li class="nav-item">
  <a class="nav-link" href="{% url 'posts:profile' request.user.username %}">Личный кабинет</a>
</li>
{% else %}
<li class="nav-item">
  <a class="nav-link"href="{% url 'signup' %}">Регистрация</a>
</li>
<li class="nav-item">
  <a class="nav-link" href="{% url 'login' %}">Авторизация</a>
</li>
{% endif %}

Что касается шаблона личного кабинета, то думаю было бы логичным разместить там ссылки на создание поста, а так же на разлогин и смену пароля. Для этого откроем файл profile.html и разместим там следующий код вместо переменной status (которая до этого была размещена в учебных целях): 

<li class="list-group-item">
<a href="{% url 'posts:new_post' %}" style="text-decoration:underline">Создать пост</a>
</li>
<li class="list-group-item">
<a href="{% url 'password_change' %}" style="text-decoration:underline">Смена пароля</a><br/>
<a href="{% url 'logout' %}" style="text-decoration:underline">Выход</a>
</li>

Создание страницы 404

Тут надо понимать, что создавать страницу 404 имеет смысл только в том случае, если сайт работает в боевом режиме; иначе мы не увидим отладочную информацию, которая бывает необходима, когда мы разрабатываем сайт.

Чтобы настроить такую страницу, необходимо в файле settings.py приложения, значение переменной DEBUG изменить на False, а массив ALLOWED_HOSTS заполнить именами доменов, на которых будет работать сайт.

Ну и остаётся только разместить в директории templates файл 404.html со следующим содержимым: 

{% extends "index.html" %}
{% block header %}{% endblock %}
{% block content %}
<div style="text-align: center;">
  <font size="24">404 ошибка</font>
</div>
{% endblock %}

На этом всё, надеюсь данная серия заметок была для вас полезной. Конечно, в этом блоге можно было бы реализовать ещё много какого дополнительного функционала, но это уже оставлю на ваше усмотрение. Тем более считаю что первоначальная цель, - дать основы по созданию сайта на Джанго, - была достигнута. 

Последние актуальные изменения доступны в репозитории https://github.com/maclen2007/simple_django_blog/commit/561ed3611b4b13e34a1ee20c22fe197448702fa0

Комментарии ()

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