如何使用@classmethod将实体转换为消息

时间:2014-02-14 02:39:21

标签: python google-app-engine protorpc

我有这个型号:

class User(ndb.Model):
    firstname = ndb.StringProperty(required = True)
    lastname = ndb.StringProperty(required = True)
    email = ndb.StringProperty(required = True)
    birthday = ndb.DateProperty(required = True)

    @classmethod
    def to_message(self):
        return UserMessage(firstname = self.firstname,
                           lastname = self.lastname,
                           email = self.email,
                           birthday_day = self.birthday.day)

UserMessage是protoRPC对象。并希望这样的事情:

user = User.query(User.email == 'john@example.com').get()
user_message = user.to_message()

1 个答案:

答案 0 :(得分:2)

这里不能使用类方法。

类方法中没有self,按惯例,它是cls,并且您传递的类不是实例。 to_message应该是一种常规方法。