NDBプロジェクションクエリがどのように機能し、キャッシングがバックグラウンドでどのように動作するかについて、いくつか疑問があります。
したがって、次のようなモデルが与えられます。
class Users(ndb.Model):
user_name = ndb.StringProperty(required=True)
user_email = ndb.StringProperty(required=True)
user_password = ndb.StringProperty(required=True)
@classmethod # THIS ONE DOES NOT WORK
def get_profile_info(cls, id):
return ndb.Key(Users, id).get(projection=[Users.user_name])
@classmethod # THIS ONE WORKS
def get_profile_info(cls, id):
return Users.query(Users.key == ndb.Key(Users, id)).get(projection=[Users.user_name])
最初のクラスメソッドで「TypeError:Unknown configuration option('projection')」が発生するのはなぜですか?キーを照会する代わりに、キーの直接取得でプロジェクションを呼び出すことはできませんか?
次に、キャッシングに関して、このスレッドを正しく理解したかどうかはわかりません。投影されたクエリを使用する場合のNDBキャッシング
投影されたクエリはキャッシュされていませんか?これは、投影するのではなく、単にget()を呼び出して(そしてインスタンス全体をフェッチして)キャッシュされるようにする方が良いという意味ですか?
前もって感謝します!