use*_*084 0 python pylons pyramid
newb to python和pyramid/pylons.用户登录后,我想在我的数据库中获取一些数据并将其存储在会话变量中.我已经能够用remember()存储用户的登录ID.使用request.session,我可以设置一个会话变量,只要它是一个字符串,但如果我尝试从我的数据库中检索一些东西,我会收到一个错误:"BadPickleGet: ".这是我的观点的相关部分:
if 'form.submitted' in request.params:
login = request.params['login']
password = request.params['password']
if User.check_password(login, password):
headers = remember(request, login) # ie dave
session = request.session
#session['myvar'] = 'somethinghardcoded' # this works!
session['myvar'] = User.myfield # this doesn't work!
session.save()
return HTTPFound(location=came_from, headers=headers)
Run Code Online (Sandbox Code Playgroud)
在您的示例中,您不处理User从数据库加载的实例.这就像是user = DBSession.query(User).filter_by(login).first().User.myfield和之间存在很大差异user.myfield,其中第一个只是Column对象或属性,第二个是数据库中特定行的实际数据.您的错误可能只是无法挑选一个Column对象.会话可以很好地挑选原始类型(整数,字符串等).
| 归档时间: |
|
| 查看次数: |
1561 次 |
| 最近记录: |