Почему мое приложение Django не может найти шаблон URL?
Мой проект Django запущен в Docker, и я использую Celery для обработки очередей. Когда пользователь отправляет аудиофайл, система запускает асинхронную задачу (которая транскрибирует аудио), постоянно проверяет ее выполнение и обновляет пользовательский интерфейс, когда транскрипция завершена, с кнопкой загрузки. Однако я получаю ошибку после завершения транскрипции, но до появления кнопки загрузки. Ошибка указывает на то, что не удается найти представление, которое предоставляет пользователю завершенную транскрипцию. Вот мой код.
views.py:
def initiate_transcription(request, session_id):
file_name = request.session.get('uploaded_file_name')
file_path = request.session.get('uploaded_file_path')
if request.method == 'GET':
if not file_name or not file_path:
return redirect(reverse('transcribeSubmit'))
if request.method == 'POST':
try:
if not file_name or not file_path:
return redirect(reverse('transcribeSubmit'))
audio_language = request.POST.get('audio_language')
output_file_type = request.POST.get('output_file_type')
if file_name and file_path:
print(str("VIEW: "+session_id))
task = transcribe_file_task.delay(file_path, audio_language, output_file_type, 'ai_transcribe_output', session_id)
return JsonResponse({'status': 'success', 'task_id': task.id})
except Exception as e:
return JsonResponse({'status': 'error', 'error': 'No file uploaded'})
return render(request, 'transcribe/transcribe-complete-en.html')
def check_task_status(request, session_id, task_id):
task_result = AsyncResult(task_id)
if task_result.ready():
transcribed_doc = TranscribedDocument.objects.get(id=session_id)
return JsonResponse({
'status': 'completed',
'output_file_url': transcribed_doc.output_file.url
})
else:
return JsonResponse({'status': 'pending'})
JS:
urls.py:
urlpatterns = [
path("", views.transcribeSubmit, name="transcribeSubmit"),
path("init-transcription/<str:session_id>/", views.initiate_transcription, name="initiate_transcription"),
path("check_task_status/<str:task_id>/", views.check_task_status, name="check_task_status"),
]
Вот журнал ошибок:
web-1 | Not Found: /check_task_status/02760416-c2fb-4526-b0d0-d5cdafabf8cf/