0

我有一个看起来像这样的视图函数:

def search_manager(request, account_id):
    account = Account.objects.get(pk=account_id)
    ...

我想创建中间件或上下文处理器,我可以在其中设置一些将为每个视图设置的值。有没有办法我可以进入account_id中间件或上下文处理器,以便我可以获取所有视图所需的值?

4

1 回答 1

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 中的会话对象就像字典一样工作。

于 2013-03-26T04:13:53.793 回答