在Django中获取URL值

时间:2013-03-26 03:28:10

标签: python django

我有一个看起来像这样的视图功能:

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

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

1 个答案:

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