Speichern von Benutzerobjekten in Google App Engine

Versuchen, herauszufinden, die beste Praxis bei der Speicherung von Webapp2 Auth Benutzerobjekte als Referenz in einer Google App-Engine ndb Domain Entity.

Die 3 Wege kann ich denken, es zu tun

class MyEntity(ndb.Model): users = ndb.UserProperty(repeated=True) 

oder

 class MyEntity(ndb.Model): users = ndb.StringProperty(repeated=True) 

Wo ich User-IDs aus dem Webapp2 User Objekt wie speichern würde

 user.get_id() 

oder

 class MyEntity(ndb.Model): users = ndb.KeyProperty(repeated=True) 

Wo ich den User Key aus dem Webapp2 User Objekt wie speichern würde

 user.key 

Ich bin mir nicht sicher, was ist die beste Praxis hier? Insbesondere gibt es einen Vorteil für die Speicherung von user_id vs Schlüssel? Angenommen, UserProperty ist die alte Art, Dinge zu tun?

One Solution collect form web for “Speichern von Benutzerobjekten in Google App Engine”

Vermeiden Sie UserProperty, speichern Sie die ID stattdessen.

Gerade aus der Quelle …

 # google/appengine/ext/ndb/model.py:1711 class UserProperty(Property): """A Property whose value is a User object. Note: this exists for backwards compatibility with existing datastore schemas only; we do not recommend storing User objects directly in the datastore, but instead recommend storing the user.user_id() value. """ 
  • Serve Stylesheet mit webapp2 außerhalb von Google App Engine
  • Einfache Python- und Ajax-Beispiel Wie man Response mit Python sendet?
  • Webapp2 - Wie kann ich die URL in Vorlagen umkehren?
  • Grundlegendes zur globalen Objektpersistenz in Python WSGI Apps
  • Dateien in webapp2 / GAE hochladen
  • GAE webapp2 Session Handling funktioniert nicht, wenn Selling Basehandler auf eine andere Datei
  • Speicherleck in Google ndb Bibliothek
  • Flasche vs webapp2 für Google App Engine
  • Speicherleck in Google ndb Bibliothek
  • Wie benutzt man WSGI, um einen Benutzer von http auf https umzuleiten
  • Reagiert mit 404 als Statuscode in Webapp2
  • Python ist die beste Programmiersprache der Welt.