我有一个模型可以保存最终用户的任务进度。你知道吗
class TaskCompleted(models.Model):
session = models.ForeignKey('sessions.Session', on_delete=models.SET_NULL,blank=True, null=True)
user = models.ForeignKey(User, blank=True, null=True)
task = models.ForeignKey(Task, blank=True, null=True)
最终用户可能已登录,也可能未登录。如果他们被记录了,我就把它保存到用户那里,如果他们没有,我就把它保存到会话中。你知道吗
当用户登录时,我想查找他们在未经验证的情况下完成的任何任务,然后更新用户外键以将其与帐户关联。你知道吗
我发现会话已被破坏,因此将会话设置为Null。你知道吗
我对别人关于如何处理这个问题的建议很感兴趣?你知道吗
当用户登录时,会话数据不会被销毁-数据将保存到新会话(密钥为“cycled”)。您仍然可以使用
request.session['mykey']
。您可以做一些事情来持久化/更改TaskCompleted
实例的所有权。一个选项是在会话中为匿名用户保存TaskCompleted
实例id,并重写login视图,以便在成功登录时将该实例分配给用户。(如果您遵循这一点,您将不需要模型中的session = models.ForeignKey()
字段)相关问题 更多 >
编程相关推荐