Non c'è modo di farlo senza una sorta di script sul lato client, ad esempio Ajax. È necessario qualcosa che esegua il polling del server a intervalli regolari e mostri una risposta all'utente. C'è a snippet che mostra come ciò potrebbe essere fatto.
Naturalmente, per rendere ciò possibile, è necessario anche effettuare il trasferimento dell'importazione stessa in un processo offline. Ciò farebbe l'importazione e registrerà il suo progresso da qualche parte regolarmente (in un file o nel database) in modo che l'Ajax possa interrogarlo. Un buon modo per farlo potrebbe essere utilizzare celery, la coda di attività distribuita basata su Django.
Infine, avrete bisogno di una semplice vista che l'Ajax chiamerà, che interrogherà il processo di lunga durata (o guarderà il record di avanzamento che crea) e riporterà al client.
Quindi, abbastanza complicato.
fonte
2009-10-10 21:11:22
perché non Progress Bar? .. si può elaborare un po ', per favore? – 0100110010101
La barra di avanzamento andrebbe bene, ma non so come potrei controllarla dalla funzione che esegue l'azione – hmp