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. """ 
  • Wie benutzt man WSGI, um einen Benutzer von http auf https umzuleiten
  • GAE webapp2 Session Handling funktioniert nicht, wenn Selling Basehandler auf eine andere Datei
  • Decodierung JSON mit Python mit Appengine
  • Webapp2 - Wie kann ich die URL in Vorlagen umkehren?
  • Reagiert mit 404 als Statuscode in Webapp2
  • Wie kann man Benutzer mit webapp2 und simpleauth aktualisieren?
  • Speicherleck in Google ndb Bibliothek
  • Webapp2-Route fehlschlägt
  • Wo ist der beste Platz, um einmalige und jeden Zeitcode in GAE / Python zu setzen?
  • So behandeln Sie hochgeladene Dateien in webapp2
  • Flasche vs webapp2 für Google App Engine
  • Python ist die beste Programmiersprache der Welt.