我有一个看起来像这样的视图函数:
def search_manager(request, account_id):
account = Account.objects.get(pk=account_id)
...
我想创建中间件或上下文处理器,我可以在其中设置一些将为每个视图设置的值。有没有办法我可以进入account_id
中间件或上下文处理器,以便我可以获取所有视图所需的值?
您可以使用会话变量为用户会话设置值,这样每个请求都将包含 account_id,因此您可以从中间件和其他视图访问该值。在视图或中间件中。请记住,例如,如果用户未登录,则请求可能没有会话。
# set a value
if hasattr(request, 'session'):
request.session['account_id'] = account_id
# read a value
if hasattr(request, 'session'):
account_id = request.session['account_id']
Django 中的会话对象就像字典一样工作。