def get_dict(cls, **kw): """ Calls kvds, gets a dict of the model """ assert len(kw) == 1 k, v = kw.items()[0] field = cls._meta['fields'].get(k) assert field assert field.primary_index key = construct_key(cls._meta['fields']['key_prefix'].val, k, v) o = simplejson.loads(dutils.kvds.utils.kvds(key=key)[key]) return o
def save(self): """ Saves the model in datastore serialized as json """ for fattrs in self._meta.keys(): mfields = getattr(self,fattrs) klass = mfields.values()[0].__class__ klass.pre_save(self) data = self.__data__() primary_index_keys = [] for k,f in self.fields.items(): if f.primary_index: v = getattr(self, k) key = construct_key(self.key_prefix, k, v) primary_index_keys.append(key) #print key, "=>", simplejson.dumps(data) dutils.kvds.utils.kvds(key=key, value=simplejson.dumps(data)) for k,f in self.fields.items(): if f.index: v = getattr(self, k) index_key = construct_key(self.key_prefix, k, v) for pik in primary_index_keys: #print index_key, "=>", pik dutils.kvds.utils.kvds(key=index_key, value=pik) self.is_saved = True