equal
deleted
inserted
replaced
441 # the entity has been updated call _onUpdate |
441 # the entity has been updated call _onUpdate |
442 self._onUpdate(entity) |
442 self._onUpdate(entity) |
443 |
443 |
444 return entity |
444 return entity |
445 |
445 |
446 def updateOrCreateFromFields(self, properties): |
446 def updateOrCreateFromFields(self, properties, silent=False): |
447 """Creates a new entity with the supplied properties. |
447 """Creates a new entity with the supplied properties. |
448 |
448 |
449 Args: |
449 Args: |
450 properties: dict with entity properties and their values |
450 properties: dict with entity properties and their values |
|
451 silent: if True, do not run the _onCreate hook |
451 """ |
452 """ |
452 |
453 |
453 for property_name in properties: |
454 for property_name in properties: |
454 self._createField(properties, property_name) |
455 self._createField(properties, property_name) |
455 |
456 |
458 entity.put() |
459 entity.put() |
459 else: |
460 else: |
460 key_name = self.getKeyNameFromFields(properties) |
461 key_name = self.getKeyNameFromFields(properties) |
461 entity = self._model.get_or_insert(key_name, **properties) |
462 entity = self._model.get_or_insert(key_name, **properties) |
462 |
463 |
463 self._onCreate(entity) |
464 if not silent: |
|
465 self._onCreate(entity) |
|
466 |
464 return entity |
467 return entity |
465 |
468 |
466 def isDeletable(self, entity): |
469 def isDeletable(self, entity): |
467 """Returns whether the specified entity can be deleted. |
470 """Returns whether the specified entity can be deleted. |
468 |
471 |