我有一个函数,它接受输入的选择,并从数据库中提供与用户选择匹配的随机对象:
def someFunction():
if choice == 'Choice1'
result = Choice1.objects.all.order_by('?')[0]
elif choice == 'Choice2'
result = Choice2.objects.all.order_by('?')[0]
return result
它像这样传递给视图:
def ChoiceView():
context = {
'Choice': someFunction(),
}
return render(request, 'project/choice.html', context)
我遇到的问题是因为每次刷新页面时,该函数都会根据设计赋予随机对象一个不同的限定结果。
我想让函数保持随机性,但是一旦函数运行完毕,我不希望在刷新页面时再次运行它,而是希望保留原始函数结果,直到选择参数发生更改,否则有意刷新以获取一组新结果,或者经过了给定的时间段等
非常感谢您的帮助。
谢谢!
答案 0 :(得分:1)
为了在页面刷新之间保持类似的数据,您需要将其存储在某个地方。有多种方法可以执行此操作,但是有一些选项:
1)将其存储在数据库中。我不知道您其余的代码是什么样子,但实际上是将该字段存储在与用户关联的Model中,并每次都检索它。
2)将其存储在session中。易于上手,因为您可以使用request.session
将内容存储在会话中。不像数据库选项那样永久,但是将在页面加载之间保持不变。