Django форма FileField ошибка «Это поле обязательно для заполнения»

Почему Split, если вы можете совместить?

Воскрешая этот вопрос, потому что по какой-то причине простое решение не было упомянуто. Вот наше красиво компактное регулярное выражение:

"[^"]*"|[^,]+

Это будет соответствовать всем желаемым фрагментам ( см. Демонстрацию ).

Пояснение

  • С "[^"]*" мы сопоставляем полный "double-quoted strings"
  • или |
  • , мы сопоставляем [^,]+ любые символы, которые не являются запятой.

Возможная доработка заключается в том, чтобы улучшить строчную сторону чередования, чтобы позволить цитированным строкам включать экранированные кавычки.

0
задан user1330734 17 January 2019 в 01:08
поделиться

1 ответ

Основная проблема в вашем коде состоит в том, что вы не используете enctype="multipart/form-data" в своей форме, поэтому, когда запрос отправляется на сервер, он не имеет файла в коллекции request.FILES.

Вы должны написать HTML-код для своей формы, например, так:

{% block content %}
  <form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <table>
    {{ form.as_table }}
    </table>
    <input type="submit" value="Submit">
  </form>
{% endblock %}

и убедиться, что действие указывает на правильный URL-адрес.

наконец, это документация для загрузки файлов: https://docs.djangoproject.com/en/2.1/topics/http/file-uploads/

0
ответ дан Nazkter 17 January 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: