0

我正在创建一个django应用程序,用户在调查中回答不同的问题,但如果他们没有登录,他们的投票将在三天后被删除。

我目前的做法如下:

一旦匿名用户尝试回答问题,我就会创建一个新用户,让他们登录并分配答案。一旦用户想要创建一个帐户,我会让他们更改他们的详细信息。

这种方法令人讨厌的副作用是:当我秘密地为匿名用户创建一个帐户以允许投票时,我必须向用户假装他们没有登录。这对于使用标准管理视图和模板很烦人一般因为我必须检查一个附加属性,它告诉我是我自动创建了用户还是用户自己做了。

有没有更好的办法?

4

1 回答 1

1

一个更简单的解决方案是不将调查答案与用户 ID 绑定。为调查回复提供一个单独的、完全独立的 ID。当真实用户登录时,创建从用户到调查响应的单向关联。当匿名用户注册时,也添加此关联。(也就是说,调查的“所有者”将是可选的。)然后,定期删除没有所有者的旧调查响应,和/或忽略查询中的过时响应。

这将大部分复杂性从管理应用程序转移到仅用户注册。(即当匿名用户回答调查时,将响应 ID 存储在会话中。当新用户注册时,检查会话以获取响应 ID,然后将其分配给用户 ID。)

于 2014-05-14T23:50:18.407 回答