docs: def _write(self, _new=False):
          """Writes the values of the attributes to the datastore.
  
          This method also creates the indices and saves the lists
          associated to the object.
          """
          pipeline = self.db.pipeline()
          self._create_membership(pipeline)
          self._update_indices(pipeline)
          h = {}
          # attributes
          for k, v in self.attributes.iteritems():
              if isinstance(v, DateTimeField):
                  if v.auto_now:
                      setattr(self, k, datetime.now())
                  if v.auto_now_add and _new:
                      setattr(self, k, datetime.now())
              elif isinstance(v, DateField):
                  if v.auto_now:
                      setattr(self, k, date.today())
                  if v.auto_now_add and _new:
                      setattr(self, k, date.today())
              for_storage = getattr(self, k)
              if for_storage is not None:
                  h[k] = v.typecast_for_storage(for_storage)
          # indices
          for index in self.indices:
              if index not in self.lists and index not in self.attributes:
                  v = getattr(self, index)
                  if callable(v):
                      v = v()
                  if v:
                      try:
                          h[index] = unicode(v)
                      except UnicodeError:
                          h[index] = unicode(v.decode('utf-8'))
          pipeline.delete(self.key())
          if h:
              pipeline.hmset(self.key(), h)
  
          # lists
          for k, v in self.lists.iteritems():
              l = List(self.key()[k], pipeline=pipeline)
              l.clear()
              values = getattr(self, k)
              if values:
                  if v._redisco_model:
                      l.extend([item.id for item in values])
                  else:
                      l.extend(values)
          pipeline.execute()