【发布时间】:2018-09-25 13:34:00
【问题描述】:
我有一个关于刷新会话的问题! 当我使用 PHP 使会话过期时,我只需要在文档顶部使用 sessionmaintenance.php,是否有一种简单的方法可以在 Django 模板中执行相同操作,这样我就不必在每个视图中都这样做?
示例视图代码:
@login_required
def index(request):
request.session.set_expiry(30)
testvar="Hi!"
return render(request, 'testapp/index.html', {'testvar':testvar})
@login_required
def uploadview(request):
request.session.set_expiry(30)
etc...
我想做的是制作一个看起来像这样的 base.html - 示例模板代码:
{% if user.is_authenticated %}
<h6>{{ request.user.username }} {{ request.user.first_name }}</h6>
{% endif %}
{% request.session.set_expiry(30) %}
{% block content %}
{% endblock %}
将会话刷新合并到我的 base.html 中,这样我的视图代码看起来更干净,我不必重复自己太多。
【问题讨论】:
-
这不是你应该在模板中做的事情;这些是向用户展示数据的毛皮。例如,您可能会考虑使用自定义中间件。
-
当然你是对的,我对 Django 有点新,还在尝试进入最佳实践,我会研究中间件!
-
看看this question,你一定会找到你想要的
标签: python django templates session