我有一个看起来像这样的视图功能:
def search_manager(request, account_id):
account = Account.objects.get(pk=account_id)
...
我想创建中间件或上下文处理器,我可以设置一些将为每个视图设置的值。有没有办法在中间件或上下文处理器中获取account_id
,这样我就可以获取所有视图所需的值?
答案 0 :(得分:0)
您可以使用会话变量来为用户会话设置值,这样每个请求都将包含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中的会话对象就像字典一样工作。