页面刷新时停止功能给出新结果

时间:2019-05-09 16:39:16

标签: django python-3.x

我有一个函数,它接受输入的选择,并从数据库中提供与用户选择匹配的随机对象:

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)

我遇到的问题是因为每次刷新页面时,该函数都会根据设计赋予随机对象一个不同的限定结果。

我想让函数保持随机性,但是一旦函数运行完毕,我不希望在刷新页面时再次运行它,而是希望保留原始函数结果,直到选择参数发生更改,否则有意刷新以获取一组新结果,或者经过了给定的时间段等

非常感谢您的帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

为了在页面刷新之间保持类似的数据,您需要将其存储在某个地方。有多种方法可以执行此操作,但是有一些选项:

1)将其存储在数据库中。我不知道您其余的代码是什么样子,但实际上是将该字段存储在与用户关联的Model中,并每次都检索它。

2)将其存储在session中。易于上手,因为您可以使用request.session将内容存储在会话中。不像数据库选项那样永久,但是将在页面加载之间保持不变。