У меня есть REST API, построенный с использованием Django и TastyPie. Моя цель - добавить задачу в очередь на работу, когда новые данные отправляются в определенную модель.Django TastyPie, как вызвать действие после POST с помощью ManyToMany полей?
Я собирался подключиться к post_save и запускать затем, но модель содержит отношения ManyToMany, поэтому post_save запускается до обновления m2m-отношений и подключения к сигналу m2m_changed кажется беспорядочным. Я получаю несколько событий сигнала, и мой код должен будет проверить экземпляр после каждого из них и попытаться определить, готов ли он к запуску события. Некоторые из полей ManyToMany могут быть нулевыми, поэтому, когда я получаю сигнал m2m_changed, я действительно не знаю точно, если это сделано с сохранением.
Есть ли правильный способ сделать это? Позволяет ли TastyPie подключаться к событию POST и делать что-то в конце? Все, что я нашел, указывает мне на события post_save, чтобы сделать это.
У Django есть способ сообщить мне, когда все обновления m2m для экземпляра данной модели завершены?
Я нашел более менее неприятный способ сделать это, переопределив метод tastypie create_response(), который вызывается после сохранения всех моделей. Мне все равно это не нравится. –
Я также попытался использовать wrap_view, но для этого требуется, чтобы я повторно проанализировал содержимое ответа, чтобы получить идентификатор только что созданного объекта. Кажется очень неэффективным. –