私が達成しようとしているのは、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'])
次のようなモデルの1つの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」を返します。