AppEngine フレームワークで ndb を使用してオブジェクトをクエリしようとすると、問題が発生します。私はndbを初めて使用し、いくつかの重要な概念を誤解していると思います。
これが私が持っているものです:
私は自分のモデルを持っていますTeacher
:
from webapp2_extras.appengine.auth.models import User
class Teacher(ndb.Model):
user = ndb.StructuredProperty(User)
ranking = ndb.FloatProperty(required=True)
ご覧のとおり、ユーザー モデルは webapp2 フレームワークから取得されます。次に、あるユーザーに関連付けられている教師にクエリを実行しようとします。私はこのようにします:
def _findTeacher(self, user):
t = Teacher.query(Teacher.user == user).fetch(1)
if t:
return t[0]
else:
return None
この関数のパラメーターとして渡されるユーザーは、次のように取得されます。
user_session = self.auth.get_user_by_session()
user = self.auth.store.user_model.get_by_auth_token(user_session['user_id'], user_session['token'])[0]
しかし、次のエラーが表示されます。
BadFilterError: invalid filter: Cannot query for non-empty repeated property auth_ids.
私の間違いがどこにあるかを本当に知りたいです。また、ndb と webapp2 認証システムを使用するアプリの例も非常に役立ちます。
皆さん、ありがとうございました