def release(self, *args, **kwargs):
        """
        Really release the lock only if it's not a sub-lock. Then save the
        sub-lock status and mark the model as unlocked.
        """
        if not self.field.lockable:
            return
        if self.sub_lock_mode:
            return
        super(FieldLock, self).release(*args, **kwargs)
        self.already_locked_by_model = self.sub_lock_mode = False
Really release the lock only if it's not a sub-lock. Then save the
        sub-lock status and mark the model as unlocked.