'Backport from Django 1.9+ for 1.8.'

def save(self, commit=True):

    if self.errors:
        raise ValueError(("The    %s    could    not    be    %s    because    the    data    didn't    validate." % (self.instance._meta.object_name, ('created' if self.instance._state.adding else 'changed'))))
    if commit:
        self.instance.save()
        self._save_m2m()
    else:
        self.save_m2m = self._save_m2m
    return self.instance
