def __init__(self, model, admin_site): self.model = model self.admin_site = admin_site if not self.list_fields: self.list_fields = compat.xdb_properties(self.model).keys() if not self.list_display_links: self.list_display_links = [self.list_fields[0]]
def write_on_change_instance(obj, data): """Schreibe Instanz mit geänderten Daten in Datastore.""" properties = compat.xdb_properties(obj) dirty = False for key, value in data.iteritems(): if value != getattr(obj, key, None): setattr(obj, key, value) dirty = True if dirty: obj.put() return dirty, obj
def fields(self): """Liste der zu exportierenden Felder""" if not hasattr(self, '_fields'): fields = [] props = compat.xdb_properties(self.model) for prop in props.values(): # ndb & db compatatibility name = getattr(prop, '_name', getattr(prop, 'name', '?')) if name not in getattr(self, 'unwanted_fields', []): fields.append(name) if hasattr(self, 'additional_fields'): fields.extend(self.additional_fields) fields.sort() self._fields = fields return self._fields
def fields(self): """Liste der zu exportierenden Felder""" if not hasattr(self, '_fields'): fields = [] props = compat.xdb_properties(self.model) for prop in props.values(): name = compat.xdb_prop_name(prop) if self.only: if name in self.only: fields.append((compat.xdb_prop_creation_counter(prop), name)) elif self.ignore: if name not in self.ignore: fields.append((compat.xdb_prop_creation_counter(prop), name)) else: fields.append((compat.xdb_prop_creation_counter(prop), name)) if self.additional_fields: fields.extend((999, name) for name in self.additional_fields) self._fields = [name for (_, name) in sorted(fields)] return self._fields