Как отправлять серверные сообщения в dropzone - PullRequest
0 голосов
/ 07 мая 2019

Я использую Dropzone.js и Django для загрузки файлов, обработки их и отображения сообщений на основе процессов, выполняемых на стороне сервера. Как я могу отправлять сообщения из представления Django в мой компонент dropzone, я вижу, что там красный крестик, когда сервер генерирует ошибку, как я могу написать свое собственное сообщение об этом? Это мой взгляд:

   @login_required
   def upload_file(request):
    error=''
    if request.method == 'POST' and request.FILES['file'] :
           ##doing something and based on that generate error
            error='My message.....'
            return render(request,'app/inputFile_pannel.html', {
               'error':error})           
    return render(request,'app/inputFile_pannel.html', {
       'error':error})

и это параметры dropzone в файле шаблона:

       Dropzone.options.myDropzone = {
           clickable:true,
           method:"post",
           withCredentials:true,
           paramName: 'file',
           autoProcessQueue :false,
           uploadMultiple:false,
           forceFallback:false
}

и это форма в моем шаблоне:

<form  method="POST"  action="{% url 'upload_file' %}" enctype="multipart/form-data" class="dropzone" id="myDropzone" >
                                    {% csrf_token %}

когда я хочу показать ошибку, используя {{error}} в шаблоне, она не работает, когда я изменяю forceFallback на true, все работает хорошо, и ошибки отображаются правильно, но форма меняется на простой файл вход и больше не является зоной падения. Как я могу отправлять свои сообщения от просмотра к этому шаблону? Можно ли получить доступ к сообщению Красного Креста, которое появляется в файлах миниатюр в dropzone? кто-нибудь может помочь?

1 Ответ

0 голосов
/ 07 мая 2019

Я нашел ответ!Я поставил его здесь для людей, у которых есть такая же проблема: если вы хотите отправить сообщение из представления Django в Dropzone и хотите, чтобы оно было представлено как красное сообщение в Dropzone, вы должны отправить ответ Json, включая контекст с ошибкойключ и значение будут вашими сообщениями:

 error="My message..."
 return JsonResponse({'error':error},status=400)
...