Советы по логике приложения django - PullRequest
0 голосов
/ 28 августа 2011

Я изучаю Django и по этой причине я разрабатываю приложение, описанное ниже.

Это приложение позволяет пользователям (аутентифицированным и анонимным) отправлять сообщения другим пользователям.

Аутентифицированпользователи могут отправлять сообщения и отслеживать все сообщения просто как все приложения, использующие эту функцию.(например, сообщения Facebook)

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

Проблема в том, как я могу управлять анонимным пользователем и его сообщениями только для сеанса?

1 Ответ

1 голос
/ 28 августа 2011

Django поддерживает анонимные сессии.

Если ваше приложение относительно простое (звучит так, как оно есть), я бы сделал следующее:

  1. Создайте стандартную модель профиля пользователя Django и свяжите ее с сообщениями пользователей, но не используйте OneToOne для подключения к Пользователю.
  2. Использовать поддерживаемые базой данных сессии (https://docs.djangoproject.com/en/dev/topics/http/sessions/#using-database-backed-sessions)
  3. Создание временной модели профиля пользователя для анонимных пользователей и хранилища их временный идентификатор профиля в сеансе.
  4. Один раз в день удаляйте все объекты профиля, у которых нет пользователя AND чей идентификатор отсутствует в таблице сеансов. Простой способ (и то, что я бы сделал) состоит в том, чтобы создать поле даты / времени в профиле и просто удалить любой профиль, который был создан две недели или более назад и имеет нулевое поле пользователя. Я только что собрал команду управления django.

Круто то, что если кто-то регистрируется после анонимного использования приложения какое-то время, вы можете использовать его временный профиль в качестве своего профиля, и они сохраняют свои сообщения.

...