¿Google App Engine tiene un equivalente de get_or_create() de Django?Google App Engine: get_or_create()?
6
A
Respuesta
8
No existe un equivalente completo, pero get_or_insert es algo similar. La principal diferencia es que get_or_insert
acepta key_name
como búsqueda contra los filtros establecidos en get_or_create
.
2
no he probado esto, pero debería ser algo como lo siguiente:
class BaseModel(db.Model):
@classmethod
def get_or_create(cls, parent=None, **kwargs):
def txn():
query = cls.all()
if parent:
query.ancestor(parent)
for kw in kwargs:
query.filter("%s =" % kw, kwargs[kw])
entity = query.get()
if entity:
created = False
else:
entity = cls(parent, **kwargs)
entity.put()
created = True
return (entity, created)
return db.run_in_transaction(txn)
class Person(BaseModel):
first_name = db.StringProperty()
last_name = db.StringProperty()
p, created = Person.get_or_create(first_name='Tom', last_name='Smith')
Cuestiones relacionadas
- 1. Google App Engine
- 2. Google App Engine Geohashing
- 3. Google app engine & CDN
- 4. Google App Engine Locking
- 5. Google-app-engine NDB
- 6. Google App Engine Task Deadline
- 7. web.py en Google App Engine
- 8. Google App Engine y dos.xml
- 9. Google App Engine JDO 3
- 10. Jinja2 en Google App Engine
- 11. appengine_config.py en Google App Engine
- 12. eCommerce en Google App Engine
- 13. debería dejar Google App Engine?
- 14. Google App Engine retraso extraño
- 15. Google App Engine en Silverlight
- 16. Google App Engine: appcfg.py rollback
- 17. Google App Engine - Cookies seguras
- 18. Google App Engine modifyThreadGroup problema
- 19. Google App Engine - incremento automático
- 20. OpenID para Google App Engine
- 21. Google App Engine y CORS
- 22. Google App Engine: autenticación personalizada
- 23. Google App Engine: módulo JSON
- 24. Django en Google App Engine
- 25. ¿Alternativa para Google App Engine?
- 26. Google Maps y Google App Engine
- 27. Google App Engine en Google Apps Domain
- 28. Google App Engine: cuándo usarlo, cuándo no?
- 29. Recibiendo correo en Google App Engine
- 30. google app engine favicon.ico no actualiza