2

为什么以下示例都不起作用?

class Person(ndb.Model):
   first_name = ndb.StringProperty()
   last_name = ndb.StringProperty()
   city = ndb.StringProperty()
   birth_year = ndb.IntegerProperty()
   height = ndb.IntegerProperty()

  @classmethod
  def get_person(self, _last_name, _max_height):
     a_person = Person.query(
           ndb.AND(
              Person.last_name == _last_name,
              Person. height == _max_height
       ))
      return a_person

另一个示例替换Personself

@classmethod
  def get_person(self, _last_name, _max_height):
     a_person = self.query(
           ndb.AND(
              self.last_name == _last_name,
              self. height == _max_height
       ))
      return a_person

所以基本上我希望能够调用该get_person方法last_namemax_height让它返回一个人(假设只有一个匹配项)。我该如何做到这一点?

调用类/对象有以下几行:

my_person = Person.get_person('Doe',7)
if my_person.first_name is None:
   my_person.first_name = 'John'

但是代码失败说my_person没有属性first_name(或我尝试的任何其他属性)。

4

1 回答 1

3

以下作品:

@classmethod
def get_person(self, _last_name, _max_height):
 a_person = Person.query(
       ndb.AND(
          Person.last_name == _last_name,
          Person. height == _max_height
   ))
  return a_person.get()
于 2012-12-04T01:06:04.733 回答