0

我正在学习 Django,因此我正在开发下面描述的应用程序。

此应用程序允许用户(经过身份验证的和匿名的)向其他用户发送消息。

经过身份验证的用户可以发送消息,并且可以像使用此功能的所有应用程序一样简单地跟踪所有消息。(例如 Facebook 消息)

问题是匿名用户。我希望匿名用户可以向其他用户发送消息,但他只能为他的会话跟踪他的消息。用户还可以回复匿名用户的消息,但如果匿名用户丢失了他的会话,他的消息也会丢失。

问题是,我怎样才能只为会话管理匿名用户及其消息?

4

1 回答 1

1

Django 支持匿名会话。

如果您的应用程序相对简单(听起来很简单),我会执行以下操作:

  1. 创建一个标准的 Django 用户配置文件模型并将其链接到用户消息,但不要使用 OneToOne 连接到用户。
  2. 使用数据库支持的会话(https://docs.djangoproject.com/en/dev/topics/http/sessions/#using-database-backed-sessions)
  3. 为匿名用户创建一个临时用户配置文件模型,并将他们的临时配置文件 ID 存储在他们的会话中。
  4. 每天一次删除所有没有用户且 id 不在会话表中的配置文件对象。一种简单的方法(以及我会做的)是在个人资料上创建一个日期/时间字段,然后删除两周或更长时间前创建的任何个人资料并具有一个空用户字段。我只是 crontab 一个 django 管理命令。

很酷的是,如果有人在匿名使用该应用一段时间后注册,您可以使用他们的临时个人资料作为他们的个人资料,并保留他们的消息。

于 2011-08-28T16:13:29.140 回答