Почему Split, если вы можете совместить?
Воскрешая этот вопрос, потому что по какой-то причине простое решение не было упомянуто. Вот наше красиво компактное регулярное выражение:
"[^"]*"|[^,]+
Это будет соответствовать всем желаемым фрагментам ( см. Демонстрацию ).
Пояснение
"[^"]*"
мы сопоставляем полный "double-quoted strings"
|
[^,]+
любые символы, которые не являются запятой. Возможная доработка заключается в том, чтобы улучшить строчную сторону чередования, чтобы позволить цитированным строкам включать экранированные кавычки.
Основная проблема в вашем коде состоит в том, что вы не используете 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/