import celery.app.task class Task(celery.app.task.Task): def __call__(self, *args, **kwargs): res = super().__call__(*args, **kwargs) return self._to_native(res) def _to_native(self, data): if hasattr(data, 'to_dict'): return data.to_dict() else: return data