python - 除非重新启动服务器,否则 Django 查询集不会在实时服务器上更新,而是在本地更新
问题描述
我正在使用 Django 3.2 版
此查询集在本地和实时更新:
variable1 = serialize('json', Calls.objects.order_by('-time_pulled','-time')[:15].using('myDatabase'))
这两个查询集仅在服务器重新启动后实时更新,然后从不刷新:
variable2 = Calls.objects.filter(local_date = current_local_date).using('myDatabase').count()
variable3 = serialize('json', Calls.objects.all().filter(local_date=current_local_date).using('myDatabase'))
我确实在 Django 文档中读到 .count() 不返回新的查询集,但 .filter() 应该返回。我试着用
Calls.refresh_from_db
但这也不会刷新查询集。我也试过打电话
Calls.objects.all()[:15].using('myDatabase')
在视图函数的开头查看它是否会获取新的查询集,但在后面的调用中看不到结果。任何帮助,将不胜感激。先感谢您。
##########EDIT - 添加了上下文############# 在views.py的顶部,我定义了这些变量:
utc_now = pytz.utc.localize(datetime.utcnow())
cst_now = utc_now.astimezone(pytz.timezone("America/Chicago"))
current_local_date = cst_now.strftime('%Y-%m-%d')
然后我定义了第一个视图:
def myFirstView(request):
variable2 = Calls.objects.filter(local_date = current_local_date).using('myDatabase').count()
variable3 = serialize('json', Calls.objects.all().filter(local_date=current_local_date).using('myDatabase'))
context = {'variable2':variable2, 'variable3':variable3}
return render(request, 'myReport.html', context)
除非重新启动服务器,否则这两个不会刷新。然后我定义了这个视图:
def view2(request):
variable1 = Calls.objects.all().order_by('-time_pulled', 'time')[:15].using('myDatabase')
context = {'variable1':variable1}
return render(request, 'myOtherReport.html', context)
这会刷新而无需重新启动服务器。
解决方案
推荐阅读
- java - 需要将char转为小写并在Java中替换
- html - 在不同高度的dom底部设置输入框
- mongodb - Mongo-Express 容器可以使用 TLS 连接到 MongoDB 吗?
- sql-server - 触发器未发生 T-SQL 存储过程更新
- javascript - 如何确保 TCP 服务器始终在 VM 上运行(谷歌云)
- c++ - 如何在for循环中创建自动迭代,它将为其分配指针而不是值
- powershell - Powershell - 试图获取批量用户的描述字段
- homebrew - 收到“没有这样的文件或目录”错误消息时如何从 brew 中删除 virtualbox
- terminal - Cloudflare 牧马人安装
- file-upload - Azure 逻辑应用:通过 http WebAPI 文件上传发送 PDF 文件时损坏