简体   繁体   中英

Django enctype="multipart/form-data" not setting POST data

I need to send both a file and some data from input texts.

This is the form I'm working on:

    <form method="post" action="{% url catalog_create_ajax_upload %}" enctype="multipart/form-data" id="create-form">
        <input type="text" id="new-catalog-name" name="catalog_name" class="large-input" placeholder="catalog title" />
        <div id="new-catalog">
            <input type="file" name="file">
        </div>
    </form>

When sent, I excpect request.POST['catalog_name'] to have a value, but the whole POST attribute in an empty dictionary.

Any help?

You don't seem to have a submit button in that form. Presumably you've got one elsewhere on the page, but it would only submit the fields in its own form - move it inside that <form>...</form> .

Make sure your view function should post image file like this

def index(request):
    image = 'file' in request.FILES and request.FILES['file'] 

Use request.FILES instead of request.POST

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM