如何在django中设置和获取会话变量?

如何在django中设置和获取会话变量?,django,session,Django,Session,当用户登录时,我需要在会话上设置一个变量。我该怎么做 if request.user.is_authenticated(): profile = request.user.get_profile() request.session['idempresa'] = profile.idempresa 我的另一个问题是: class PedidoItensForm(ModelForm): class Meta: model = ItensPedido def __init__(self,

当用户登录时,我需要在会话上设置一个变量。我该怎么做

if request.user.is_authenticated():
profile = request.user.get_profile()
request.session['idempresa'] = profile.idempresa
我的另一个问题是:

class PedidoItensForm(ModelForm):
class Meta:
    model = ItensPedido

def __init__(self, *args, **kwargs):
    profile = kwargs.pop('vUserProfile', None)
    super(PedidoItensForm, self).__init__(*args, **kwargs)

如何获取会话的“idempresa”值以在查询集中使用?

用于设置会话变量:

request.session['fav_color'] = 'blue'
request.session['idempresa'] = profile.idempresa
用于获取会话数据

fav_color = request.session.get('fav_color', 'red')

参考:

用于设置会话变量:

request.session['fav_color'] = 'blue'
request.session['idempresa'] = profile.idempresa
要获取会话数据,请执行以下操作:

if 'idempresa' in request.session:
    idempresa = request.session['idempresa']

编辑:此行:profile=kwargs.pop('vUserProfile',None')不起作用。。。当我使用inlineformset_工厂时,我不知道如何通过Vuser配置文件,如果我使用inlineformset_工厂获得如何通过Vuser配置文件,这个问题就解决了!1:构建自己的中间件。或者把它放在任何发生身份验证的地方。2:在新问题中提出新问题。@slavugan Django会话没有save()方法。更改后会自动保存,也可以通过将
request.session.modified
设置为
True
来强制保存。