У меня есть простое представление и сложная функция внутри него:
def addWord(request):
def calculate():
<code>
form = WordCreationForm(request.POST or None)
if form.is_valid():
calculate()
form.save()
form = WordCreationForm()
return render(request, 'add_word.html')
Мне нужно calculate()
, чтобы работать независимо. Мне не нужны никакие обратные вызовы. Я просто хочу запустить его, а затем сразу же вернуться к сохранению формы. Итак, я сделал это:
import threading
def addWord(request):
def calculate(num):
<code>
form = WordCreationForm(request.POST or None)
if form.is_valid():
threading.Thread(target=calculate, args=(request.POST['num'],)).start()
form.save()
form = WordCreationForm()
return render(request, 'add_word.html')
Но в этом случае форма все равно не будет сохранена и отрендерена до тех пор, пока calculate()
не будет завершено.
Итак, как лучше всего запустить calculate()
асинхронно?