Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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