在Django视图中接收dropzone文件

时间:2019-03-21 20:25:35

标签: django dropzone

有人可以帮助我在Django的函数视图中接收dropzone输入吗? 我在我的dropzone模板中编写了以下代码:

index.html

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

                            </form>

URLs.py

 url('^$', views.UI_index, name='index'),

,在views.py中,我通过UI_index函数收到了发布的文件:

def UI_index(request):
file_upload_message=''
if request.method=='post':
    f = request.FILES['file']
    file_upload_message='the file is received!'

 return render(
    request,
    'cta_UI/index.html',
    {'file_upload_message':file_upload_message},
    )

index.html中,我收到file_upload_message的值,就像{{file_upload_message}}一样,但是它似乎无法正常工作,似乎if request.method=='post'的条件不正常工作,然后如何将展开的文件发布到视图?什么时候后投篮法是完全在dropzone中执行的? 虽然这不是我真正的项目,但这是在视图中接收文件的第一步……请帮助我。 谢谢。

1 个答案:

答案 0 :(得分:0)

request.method

您可以尝试使用以下代码

def UI_index(request):
    if request.method=='POST':
        up_file = request.FILES['file']
        if up_file:
            destination = open('/tmp/' + up_file.name, 'wb+')
            for chunk in up_file.chunks():
                destination.write(chunk)
            destination.close()
            file_upload_message='the file is received!'
        else:
            file_upload_message='the file is missing!'



    return render(request,'cta_UI/index.html',
        {'file_upload_message':file_upload_message},)