python - 在不同的页面中返回过滤结果 - Django
问题描述
我已经搜索过了,但没有任何接缝可以做到这一点或准确无误。
假设我在 A.html 页面上有两个网站,我有一个过滤器 (djnago_filter),而 B.html 是空的。如果用户提交搜索表单,他会从页面 A.html 重定向到页面 B.html,在该页面中使用 for 循环显示结果。
我该怎么做?
我正在考虑将数据从查询集传递到另一个视图,但必须有更好的解决方案。
解决方案
有几种方法可以在不同的视图(页面)上存储和显示信息:
- 您可以使用Sessions:
#views.py
#set the session key in the view A:
request.session['info'] = {'key', 'value'}
#get the session key in the view B:
info = request.session['info']
del request.session['info']
#app/models.py
#model to store information from page A
from django.contrib.auth.models import User
class MyModel(models.Model):
user = models.ForeignKey(User,
on_delete=models.DELETE,
related_name="info")
info = models.JSONField()
#views.py
#store data in the view A:
from app.models import MyModel
MyModel.objects.create(user=request.user, info={'key', 'value'})
#retrieve data in the view B:
info = MyModel.objects.get(user=request.user)
但实际上,一切都取决于您打算实现的逻辑。实际上还有其他方法,例如使用异步 Ajax、React、WebSockets ......
推荐阅读
- php - 2019 如何使用 PHPMailer V6.0.7 和 PHP 从 Web 表单发送多个附件
- ruby-on-rails - 如何将 Sunspot 连接到远程 solr 服务器
- postman - 此调用的 User-Agent 标头应该是什么?
- excel - 引用 Range.Row() 设置的 Range 对象会生成错误 1004“应用程序定义或对象定义错误”
- javascript - Jquery Datatables.net:对表格进行排序后,奇数次,侦听器不起作用
- c# - 具有在路由中指定的字段类型的 MVC WebApi 路由
- sql - 想拉当月-2个月
- c# - 将参数传递给计时器间隔
- winforms - Winform 发布命令
- flutter - 导航到 Fluttter 中的新小部件时如何不处理以前的小部件?