Два вида комментирования в одном

Основное
Цели
Решение
Результат

Как я комменты добавлял на сайт

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

Грубо говоря вся сложность состояла в том, чтобы учитывать как анонимных комментаторов, так и зарегистрированных.

Цели

Можно выделить 5 целей:

  • Реализовать модель пользователя
  • Реализовать модель комментария
  • Создать комментирование для анонимусов
  • Создать комментирования для зарегистрированных
  • Объединить и тех и других под одной моделью и одной формой отправки.

Решение

Пользовательская модель

Начнём с самого простого. С пользователя. Его модель у меня уже была, со времён реализации системы аутентификации. Поэтому, не буду тут останавливаться.

Модель комментария

Дальше идёт модель комментария. С ним далеко не всё просто. Чтобы следить за тем, кто оставил комментарий, пришлось добавить два айдишника. Один для анонимуса, другой для зарегистрированного пользователя

Так же я добавил дополнительное поле, ManyToManyField. И оно указывало на саму модель комментария. В будущем я планирую добавить возможность отвечать на комментарии. Но это в будущем. А пока идём дальше.

Комментирование для анонимусов

Комментирование для анонимусов пришлось немного ограничить иначе спама не избежать. Они, да и зарегистрированные пользователи могут отправить комментарий не чаще чем 1 раз в минуту.

Пример комментария | Тим зе вебмастер

Также, перед отправкой комментария у анонимуса спаршивается его имя. Это для того, чтобы можно было понять кто оставил комментарий.

Пример комментария с потверждением имени | Тим зе вебмастер

Совместное комментированние

Для зарегистрированных пользователей ничего не требуется. Просто бери и оставляй комментарий

Объединить и тех и других под одной формой не составило особого труда. Немного джаваскрипта и шаблонной магии Django. И вот, мы уже имеет работающую систему комментирования.

Результат

Хочется сказать, что в этом направлении есть куда расти. Возьмите хотя бы возможность оставлять комментарии через ваши соцсети или например оставлять картинки или гифки.

Вообщем, я быстро сделал данное приложение для Django. Создал необходимый минимум. Наверное 8 дней мне потребовалось на него. Не больше.

По итогу, все задачи были выполнены и теперь каждый сможет оставить свою подпись под тем или иным постом.

Дополнительные материалы


сердце 0
3 соединённые точки 0