我正在学习Udacity的Web开发课程,该课程在db.Model中讲授。我想在ndb中这样做。
任何帮助将不胜感激。我将以下db.Model代码转换为ndb.Model:
时遇到了很多麻烦class User(db.Model):
name = db.StringProperty(required = True)
pw_hash = db.StringProperty(required = True)
email = db.StringProperty()
@classmethod
def by_name(cls, name):
u = User.all().filter('name =', name).get()
# My Attempt:
# u = User.query(cls.username).get
return u
@classmethod
def login(cls, name, pw):
u = cls.by_name(name)
if u:
return u
我相信这套classmethod旨在返回用户实体,给定其'username'属性(如果存在)。我很感激任何小费!谢谢你的阅读。
答案 0 :(得分:0)
ndb中的许多内容具有相同的名称,其工作方式与db中相同,因此更改属性非常简单。您可以在模型实例上调用.all()
,而不是query
。使用python比较运算符进行过滤,模型的属性位于左侧(反之亦然,从未尝试过。
class User(ndb.Model):
name = ndb.StringProperty(required = True)
pw_hash = ndb.StringProperty(required = True)
email = ndb.StringProperty()
@classmethod
def by_name(cls, name):
u = cls.query().filter(User.name == name).get()
return u
@classmethod
def login(cls, name, pw):
u = cls.by_name(name)
if u:
return u