Как заставить django выдать HTTP-ответ, прежде чем продолжить выполнение задачи, связанной с запросом?

В моем API поршня django я хочу выдавать / возвращать HTTP-ответ клиенту перед вызов другой функции, что займет некоторое время. Как сделать так, чтобы yield выдавал HTTP-ответ, содержащий желаемый JSON, а не строку, относящуюся к созданию объекта-генератора?

Мой метод обработчика поршня выглядит так:

def create(self, request):
    data = request.data 

    *other operations......................*

    incident.save()
    response = rc.CREATED
    response.content = {"id":str(incident.id)}
    yield response
    manage_incident(incident)

Вместо ответа, который я хочу, например:

   {"id":"13"}

Клиент получает такую ​​строку:

 "<generator object create at 0x102c50050>"

РЕДАКТИРОВАТЬ:

Я понимаю, что использование yield было неправильным способом решения этой проблемы, по сути, я пытаюсь добиться того, чтобы клиент сразу получил ответ до того, как сервер перейдет на дорогостоящую функцию manage_incident ()

6
задан Dangermouse 7 July 2011 в 19:47
поделиться