如何通过外键将模型与会话关联

时间:2015-01-25 17:05:15

标签: python django django-models

假设我的网站存储每篇文章与创建它的用户相关联的文章。我想允许未经身份验证的用户创建文章,然后登录/注册,此时他们创建的文章(在登录/注册之前)与他们的用户实例相关联。

我解决这个问题的计划是,我的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 = ...?

2 个答案:

答案 0 :(得分:2)

这是错误的方式。您应该将文章ID存储在会话中,而不是将会话密钥存储在模型中;然后,在登录时,您可以将该ID从会话中弹出,获取相关文章,并设置用户。

答案 1 :(得分:0)

使用CharField在其中存储request.session.session_key。