我希望在数据库中存储一些内容,并将当前会话用作外键:来自models.py
class Visited(models.Model):
session = models.ForeignKey(Session)
page = models.ForeignKey(Page)
times_visited = models.PositiveIntegerField()
ip_address = models.IPAddressField()
date_last_visited = models.DateTimeField()
def __unicode__(self):
return u'(%s, %s)' % (str(self.session.session_key), str(self.page.name))
要为这个模型创建一个新条目,我使用以下命令来获取当前会话(在views.py中):
Session.objects.get(session_key=request.session.session_key)
但是,如果这是用户第一次访问该站点,因此还没有设置cookie,则上面的代码将产生DoesNotExist
错误。
我知道,即使现在设置了cookie,您仍然可以设置会话对象。因此,我可以想出一些技巧来实现这一点,例如:
Python设置唯一标识符作为session对象(除了session key)
但我想要一个我能接受的更好的解决方案。对于这个问题,有没有什么通用的或好的解决方案?或者我甚至在我的模型中正确地引用了会话?
谢谢你的帮助。
https://stackoverflow.com/questions/5130639
复制相似问题