Я переопределяю метод save() для вызова асинхронной задачи с помощью Celery. Эта задача также сохраняет модель, и поэтому я получаю рекурсивную ситуацию, когда задача Celery вызывается повторно. Здесь код:
Метод сохранения модели:
def save(self, *args, **kwargs):
super(Route, self).save(*args, **kwargs)
from .tasks import get_elevation_data
get_elevation_data.delay(self)
Задача get_elevation_data:
from celery.decorators import task
@task()
def get_elevation_data(route):
...
route.elevation_data = results
route.save()
Как избежать этой рекурсии?