整个网站的相同随机记录

时间:2011-05-31 14:58:35

标签: django

我正在建立一个网站,每次用户输入时都会显示不同的背景。然后,该背景将在整个网站上使用相同的用户和会话。

所以基本上,用户进入主页,获取背景,并且在用户关闭网站或打开新页面之前该图像不会改变。我想你明白我的意思。

我知道如何使用Django从数据库中获取随机记录,但我不确定如何在整个网站上保持该记录的持久性,因为如果我在每个视图上提取它,我会得到一个不同的图像不同的页面。

所以我的“索引”视图可能正在调用

bgimage = BackgroundImage.objects.random()

但后来我遇到了问题。如何在所有其他视图中保持此随机记录不变。那可能吗?我应该查看会话,饼干吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用sessions - 类似

if 'bgimage' not in request.session:
    bgimage = BackgroundImage.objects.random()
    request.session['bgimage'] = bgimage.pathtoimage

答案 1 :(得分:1)

上下文处理器:

def bgimage(request):
    if 'bg_image' not in request.session:
        image = BackgroundImage.objects.random()
        request.session['bg_image'] = image.file
    return {'background_image' : request.session['image']}