我正在建立一个网站,每次用户输入时都会显示不同的背景。然后,该背景将在整个网站上使用相同的用户和会话。
所以基本上,用户进入主页,获取背景,并且在用户关闭网站或打开新页面之前该图像不会改变。我想你明白我的意思。
我知道如何使用Django从数据库中获取随机记录,但我不确定如何在整个网站上保持该记录的持久性,因为如果我在每个视图上提取它,我会得到一个不同的图像不同的页面。
所以我的“索引”视图可能正在调用
bgimage = BackgroundImage.objects.random()
但后来我遇到了问题。如何在所有其他视图中保持此随机记录不变。那可能吗?我应该查看会话,饼干吗?
谢谢!
答案 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']}