django - 页面刷新时停止功能给出新结果 django
问题描述
我有一个函数,它接受输入的选择并从数据库中提供与用户选择匹配的随机对象:
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)将其存储在数据库中。我不知道您的其余代码是什么样的,但实际上将此字段存储在模型中,与用户相关联,并且每次都检索它。
2)将其存储在会话中。易于上手,因为您可以使用request.session
. 不像数据库选项那样永久,但会在页面加载之间持续存在。
推荐阅读
- c# - 按变量递增整数列值
- javascript - Javascript:从今天的日期显示“今天”或从昨天的日期显示“昨天”
- javascript - 从面积样条图中删除线点
- amazon-fire-tv - 如何防止 FireTV 通过 youtube.com/tv 等网站(而非应用程序)进入睡眠状态?
- firebase - 如何将客户端的时间戳与“firestore”时间戳同步?
- mysql - Slurm 将数据库从 Mariadb 迁移到 mysql 企业
- javascript - 单击子级时如何防止单击父级div
- vb.net - 试图在 VB.net 中编写 XML
- javascript - Angular2 +中的类型'()=> void'上不存在属性'nativeElement'
- reactjs - 如何找到实现某个接口的函数的参数类型?