Frage

Aus diesem Grunde muß ich setzen user_id () 's in den Datastor:

  

Ein Benutzer Wert im Datenspeicher nicht   erhalten aktualisiert, wenn der Benutzer sie ändert   E-Mail-Addresse. Dies kann in behoben werden   eine zukünftige Version. Bis dahin können Sie   verwenden Sie die user_id Anwenderwert () als   Benutzer stabile eindeutige Kennung.

     

http://code.google.com/appengine /docs/python/datastore/typesandpropertyclasses.html#users_User

     

Im Datenspeicher, der Wert   gleich zu der E-Mail-Adresse sowie die   Benutzer die eindeutige ID. Wenn der Benutzer Änderungen   ihre E-Mail-Adresse, der neue Benutzer-Wert   wird nicht die ursprüngliche Benutzerwert gleich   in Datenspeicherabfragen oder im Vergleich   von der App. Wenn Ihre Anwendung braucht eine stabile   Kennung, die nicht verändert, Sie   speichern kann separat die eindeutige ID   von dem Benutzerwert.

     

http://code.google.com/appengine/docs /python/users/userobjects.html

Wie kann ich es tun?

Und wie Sie wissen (oder wo hast du es sehen?)

War es hilfreich?

Lösung

Die übliche Antwort „nein Eigentum“: Wenn Sie eine stabile Kennung benötigen, ist es wahrscheinlich, weil Sie Benutzer, indem sie es sind aufzublicken, in diesem Fall sollten Sie es als Schlüsselnamen für die Entität verwenden, etwa so:

class UserInfo(db.Model):
  is_admin = db.BooleanProperty(required=True, default=False)

user_info = UserInfo.get_or_insert(users.get_current_user().user_id())

Wenn Sie wirklich eine Kennung für den Benutzer an anderer Stelle müssen speichern, können Sie eine db.StringProperty verwenden, um den Benutzer-ID zu speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top