Найти - Пользователи
Полная версия: Вывод новых постов для юзеров
Начало » Django » Вывод новых постов для юзеров
1
aliens
Здравствуйте!

Имеется стандартный бложек: посты, юзеры, комментарии. Требуется сделать подсветку новых постов и комментариев с последнего захода пользователя (как на форумах) Как такое реализовать? Мне в голову ничего не приходит, кроме как смотреть на время последнего входа юзера, потом на последние посты, если время поста новее, чем последнего входа, то подсвечивать пост и также с комментариями. Но тут возникает проблема, а как запоминать, что юзер просмотрел этот пост или комментарий?
dissdoc
добавь поле еще одно - смотрел/не смотрел
В чем проблема?
slav0nic
dissdoc
на самом деле не всё так просто)
если у тебя мало постов, то можешь хранить в кукисах/сессиях ID прочитанные постов
в djangobb я сделал так: http://hg.djangobb.org/djangobb/rev/ddfffe696aa8 (там позже есть исправления коммита)
Суть:
есть таблица с JSON полем где хранятся id, размер ограничен, для этого есть поле last_read типа DateTime, при достижении определённого объёма записей, JSON поле стирается и записи, которые были сделаны позже значения last_read просто игнорируются.
Можешь ещё гялнуть как это сделано с cicero, там есть merge - предусмотрина ситуация блокировки JSON поля, чтоб не было проблем при нескольких одновременных запросах в таблице.
slav0nic
А, ещё bitmaps прокатит) почитай http://www.alrond.com/ru/2008/apr/23/save-boolean-condition-in-django-in-bitmask/

Самый простой тупой вариант создавать в таблице Read(user, entry_id, read_time) записи когда был прочитан пост, но это будет тупить на большом количестве юзеров
aliens
slav0nic
Вот, спасибо большое, почитаю. Как раз еще собирался смотреть как в форуме твоем сделано :) но решил сначала теорией расжиться
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB