0

Я использую конечные точки Google и хочу расширить класс User, чтобы вызов get_current_user возвращал объект AppUser с моими дополнительными свойствами.google app engine python: как расширить ndb Класс пользователя

class AppUser(--?--): # what should i put here 
    gcm = ndb.StringProperty() 

    def send_notification(self): 
     # do something with gcm ... 
     pass 

Как я могу реализовать такую ​​вещь? и есть ли лучший способ?

ответ

2

Официально это официально не поддерживается, и я бы не рекомендовал возиться с ним; есть лучший способ, просто добавьте новый Model и свяжите его с помощью user_id, после чего вы сможете делать с ним все, что хотите.

class Preferences(ndb.Model): 
    gcm = ndb.StringProperty() 

user = users.get_current_user() 
Preferences(
    gcm='', 
    id=user.user_id(), 
).put() 
prefs = Preferences.get_by_id(user.user_id()) 
+0

но что, если 'user_id()' возвращает 'None'? – user47376

+0

Хорошо разветвите свой код соответственно, если это «Нет», тогда нет необходимости извлекать «Настройки»; Я бы создал эту сущность при регистрации пользователя, таким образом вы будете уверены, что она существует при каждом последующем входе в систему. –

Смежные вопросы