我想要实现的是从 webapp2.cached 属性获取用户对象。我在我的请求处理程序中定义了一个方法,它给了我当前用户。
@webapp2.cached_property
def current_user(self):
user_dict = self.auth.get_user_by_session()
return self.auth.store.user_model.get_by_id(user_dict['user_id'])
我想获取用户对象,因为它是我的一个模型的 UserProperty(),如下所示:
class CountryImage(db.Model):
image = db.BlobProperty()
user = db.UserProperty()
country = db.ReferenceProperty(Country)
approved = db.BooleanProperty(default=False)
现在,当上传表单发布时,一切正常,除了“用户”在数据存储中显示为“无”。
我在交互式控制台中使用它时发现的可能原因是 current_user 方法传递了一个 Web 缓存属性,而不是实际的用户对象。
例如:
< webapp2.cached_property object at 0xb46aee8c >
现在我的问题是检索用户对象的最佳方法是什么?提前感谢您的所有帮助。
神话
PS:编辑:
以下是我试图将图像存储在数据存储中的代码:
NewImg = models.CountryImage()
NewImg.image = self.request.get('image')
NewImg.user = self.current_user
NewImg.country = models.Country.all().filter("url_name =", country).get()
continue_url = self.request.url
NewImg.put()
PS:
补充一下,我也尝试过使用“users.get_current_user()”方法,该方法也返回“None”