2 回答
TA贡献1815条经验 获得超6个赞
有几种方法可以在不同的视图(页面)上存储和显示信息:
您可以使用会话:
#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...
TA贡献1854条经验 获得超8个赞
您可以将其作为 HTML 请求参数传递到 url 中,例如,在您的 pageA 模板中
<a href="{% url 'pageB' %}?some_filter={{ some_filter }}">to page B</a>
在 pageb 视图中,您可以从请求对象中获取过滤器
def page_b_view(request):
some_filter = request.GET.get('some_filter')
添加回答
举报