Для предоставления пользователю возможности создавать записи в базах данных прежде всего хочется себя обезопасить от хулиганства. Для этого, пользователь, добавляющий записи должен быть зарегистрирован на сайте. Хочется, чтобы регистрация осуществлялась в 1-2 клика и без ввода с клавиатуры. В этом нам может помочь регистрация пользователей через социальные сети. Воспользуемся библиотекой django-allauth для организации авторизации через социальные сети. Установка библиотеки довольно подробно описана в документации. Единственная проблема, с которой я столкнулся при добавлении приложения - это то, что в этом проекте есть шаблон base.html, и если добавить это приложение до своих приложений и у вас есть тоже шаблон base.html, то возможно пересечение шаблонов. Я это обошел, переназвав свой шаблон в main.html. Читать далее...

Добавил к статьям на сайт http://practice.keyfire.ru/ социальные кнопки. Теперь понравившимися статьями можно делиться. Это даст мне мотивацию писать хороший контент, которым я бы сам поделился. Использовал самые простые кнопки https://tech.yandex.ru/share/. Чтобы задачи по урокам хорошо добавлялись в социальные сети, пришлось поколдовать над заголовками страниц. Теперь у каждой страницы свой уникальный заголовок, что достаточно удобно. Можно открыть несколько страниц и не запутаться. Отображение кнопок обернул в блок {%if %} {% endif %}. Все это потребовало изменений в модели, управляющей отображением уроков. Соответственно в нее добавил поля

social = models.BooleanField(verbose_name="Соц.сети", default=True)
tab_title = models.CharField(verbose_name='Заголовок закладки', blank=True, max_length=200, default="")
Также изменил context_processor, чтобы можно было управлять отображением заголовка закладки.