Как преобразовать сущность в сообщение с помощью @classmethod

У меня есть эта модель:

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 ответ

Решение

Вы не можете использовать метод класса здесь.

Здесь нет self в методе класса, по соглашению cls и вы прошли класс не экземпляр. to_message должен быть нормальным методом.

Другие вопросы по тегам