Django redirecciona a la página de resultados después de un acabado desaliñado

Tengo un proyecto Django con una aplicación scrapy.

Después de que el usuario rellena algunos campos de formulario, paso los datos rellenos a la araña y rastro algunas páginas.

Todo funciona a la perfección, la base de datos está siendo poblada. Salvo por una cosa.

Cuando el usuario presiona el botón Enviar, la página de resultados está en blanco porque la araña no terminó de rastrear y los datos no están en la base de datos.

¿Cómo puedo, dentro de una vista de Django, lo mismo que llamó la araña, saber que ese rastreo ha finalizado?

Aquí va mi código:

def search_process(request): """ Get data from the user and redirect him to results page. """ db = get_db() process_number = request.POST.get('process_number', '').strip() court = request.POST.get('court', '').strip() start_crawl(process_number, court) process = db.processes.find_one({ 'process_number': process_number, 'court': court }) context = { 'process': process, } return render(request, 'process_result.html', context) def start_crawl(process_number, court): """ Starts the crawler. Args: process_number (str): Process number to be found. court (str): Court of the process. """ runner = CrawlerRunner() dispatcher.connect(reactor.stop, signal=signals.spider_closed) process_info = runner.crawl(ProcessesSpider, process_number=process_number, court=court) process_info.addBoth(lambda _: reactor.stop()) 

No estoy seguro de si mi respuesta funcionará, pero puedes intentarlo o si alguien tiene una mejor idea de compartir.

en su función de rastreo devolver un valor booleano

 def start_crawl(process_number, court): ....rest of your code.... return True 

y en su función de vista

  def search_process(request): ...rest of your code... crawling = start_crawl(process_number, court) if crawling: return render(request, 'process_result.html', context)