'Shortcut for doing an UPDATE on this object.
If _signal=False is in ``kw`` the post_save signal won\'t be sent.'

def update(self, **kw):

    signal = kw.pop('_signal', True)
    cls = self.__class__
    for (k, v) in kw.items():
        setattr(self, k, v)
    if signal:
        attrs = dict(self.__dict__)
        models.signals.pre_save.send(sender=cls, instance=self)
        for (k, v) in self.__dict__.items():
            if (attrs[k] != v):
                kw[k] = v
                setattr(self, k, v)
    cls.objects.filter(pk=self.pk).update(**kw)
    if signal:
        models.signals.post_save.send(sender=cls, instance=self, created=False)
