假设我的网站存储每篇文章与创建它的用户相关联的文章。我想允许未经身份验证的用户创建文章,然后登录/注册,此时他们创建的文章(在登录/注册之前)与他们的用户实例相关联。
我解决这个问题的计划是,我的Article
模型中会有一个会话字段,用于将文章与会话相关联。因此,当用户登录时,我可以获得他在该会话中创建的所有文章,然后适当地设置他们的“用户”外键字段。
将会话存储为Article
模型中的字段的最佳方式是什么?
class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
session = ...?
答案 0 :(得分:2)
这是错误的方式。您应该将文章ID存储在会话中,而不是将会话密钥存储在模型中;然后,在登录时,您可以将该ID从会话中弹出,获取相关文章,并设置用户。
答案 1 :(得分:0)
使用CharField在其中存储request.session.session_key。