Записи
добавить запись
Для предоставления пользователю возможности создавать записи в базах данных прежде всего хочется себя обезопасить от хулиганства. Для этого, пользователь, добавляющий записи должен быть зарегистрирован на сайте. Хочется, чтобы регистрация осуществлялась в 1-2 клика и без ввода с клавиатуры. В этом нам может помочь регистрация пользователей через социальные сети. Воспользуемся библиотекой django-allauth для организации авторизации через социальные сети. Установка библиотеки довольно подробно описана в документации. Единственная проблема, с которой я столкнулся при добавлении приложения - это то, что в этом проекте есть шаблон base.html, и если добавить это приложение до своих приложений и у вас есть тоже шаблон base.html, то возможно пересечение шаблонов. Я это обошел, переназвав свой шаблон в main.html.
Всем привет! Ну вот, прослушал и проделал урок 48 в школе на spb-tut.ru. Добавил новую форму в практикум, соединил форму с моделью, теперь можно добавлять данные из формы в модель. Пока что сделал не безопасно и добавить данные в модель может кто угодно, но завтра или послезавтра эту "дырку" закрою. Выложил результаты практикума на github. Сам пример можно посмотреть на этой странице. Раньше писал информацию о коде на закладке "Код" практикумов, но теперь буду его отпралять на GitHub и давать ссылку на конкретные коммиты или просто на папки проекта.
Исходя из планов по улучшению контента, изменил страницу первоначального практикума по добавлению страниц с базами данных. Сделал реальное добавление и возможность просмотра видеофайлов с Youtube. Для этого немного изменил модель и воспользовался возможностями Bootstrap для открытия модального диалога. Не обошлось и без Javascript, в частности jQuery. Результат можно посмотреть тут: . Изменения на сайте практикума:
Модуль models.py
class Video(models.Model): # Видео
class Meta:
db_table = 'app_info_video'
ordering = ['-date']
# Описание модели
title = models.CharField(verbose_name='Заголовок', max_length=200)
description = models.TextField(verbose_name='Описание', blank=True)
date = models.DateTimeField(verbose_name='Добавлено')
thumbnail = models.CharField(verbose_name='Эскиз', max_length=200, default='')
video_url = models.CharField(verbose_name='URL видео', max_length=200, default='')
Добавлены новые поля для возможности проигрывания видео с Youtube:
- thumbnail - адрес эскиза картинки Youtube
- video_url - адрес видео с Youtube
- ordering = ['-date'] - для упорядочивания видео по дате добавления
Шаблон video.html
Подробно рассматривается в группе Google - только для пользователей Добавлена возможность проигрывать видео в модальном окне, для этого:- Добавлен модальный диалог из Bootstrap3.
- Добавлен скрипт, который при закрытии видео очищает поле и заново его устанавливает. Без этого скрипта видео не будет останавливаться при закрытии модального диалога. В скрипте используются события Bootstrap3, обрабатываемые с помощью jQuery.
Добавил к статьям на сайт социальные кнопки. Теперь понравившимися статьями можно делиться. Это даст мне мотивацию писать хороший контент, которым я бы сам поделился. Использовал самые простые кнопки . Чтобы задачи по урокам хорошо добавлялись в социальные сети, пришлось поколдовать над заголовками страниц. Теперь у каждой страницы свой уникальный заголовок, что достаточно удобно. Можно открыть несколько страниц и не запутаться. Отображение кнопок обернул в блок {%if %} {% endif %}. Все это потребовало изменений в модели, управляющей отображением уроков. Соответственно в нее добавил поля
social = models.BooleanField(verbose_name="Соц.сети", default=True)
tab_title = models.CharField(verbose_name='Заголовок закладки', blank=True, max_length=200, default="")
Также изменил context_processor, чтобы можно было управлять отображением заголовка закладки.
Bootstrap стал использовать с первых дней практики. Сразу оговорюсь, что я разработчик, а не дизайнер. Я очень люблю простой дизайн и Bootstrap мне очень понравился своей чистотой. До 34 урока я использовал пакет bjango-bootstrap3 и предлагаемый им способ подключения библиотеки bootstrap с сайта Google, после 34 урока я установил Bootstrap к себе на сайт. Bootstrap хорош всем, в том числе и кастомизацией. Для своего сайта мне понадобилось, чтобы код Python который я размещаю на сайте отображался как в pycharm. Ну мне очень хотелось однообразия. Для раскраски кода я использовал c палитрой highlight/styles/idea.css При использовании этой палитры рамка элемента pre отображается серым цветом, а мне очень хотелось, чтобы она отображалась белым. На странице можно задать настройки элементов Bootstrap . Что я и проделал и для тэга pre раздела Code. Продолжение тут
Результат выполнения домашнего задания доступен на странице Благодаря новым возможностям по отображению кода и комментариев на странице теперь на сайте можно достаточно просто добавлять результаты выполнения уроков. Также добавил на сайт на страницу О проекте круговую диаграмму, на которой отражается процент прохождения практикума. Сегодня с сыном провел отличный день. Ходили в Аквапарк. Купались, катались с горок, отдыхали в лагуне, плавали, кормили рыбок, в общем отлично провели время. В выходные нужно отдыхать.



