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

fh_*_*ash 45 django session

当用户登录时,我需要在会话上设置变量.我怎样才能做到这一点?

if request.user.is_authenticated():
profile = request.user.get_profile()
request.session['idempresa'] = profile.idempresa
Run Code Online (Sandbox Code Playgroud)

我的另一个问题是:

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

def __init__(self, *args, **kwargs):
    profile = kwargs.pop('vUserProfile', None)
    super(PedidoItensForm, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

如何在查询集中使用session的"idempresa"值?

Var*_*n K 63

用于设置会话变量:

request.session['idempresa'] = profile.idempresa
Run Code Online (Sandbox Code Playgroud)

获取会话数据:

if 'idempresa' in request.session:
    idempresa = request.session['idempresa']
Run Code Online (Sandbox Code Playgroud)

  • @slavugan Django会话没有save()方法.它们在更改时自动保存,或者您可以通过将`request.session.modified`设置为'True`来强制保存. (2认同)

Aru*_*run 54

用于设置会话变量:

request.session['fav_color'] = 'blue'
Run Code Online (Sandbox Code Playgroud)

用于获取会话数据

fav_color = request.session.get('fav_color', 'red')
Run Code Online (Sandbox Code Playgroud)

参考:https://docs.djangoproject.com/en/dev/topics/http/sessions/