У меня есть функция просмотра django, которая преобразует csv в другой формат разделителя. Но я просто хочу преобразовать CSV-файл и отклонить другие файлы.
def index(request):
csv_form = ''
if request.method == 'POST':
csv_form = CsvForm(request.POST, request.FILES)
if csv_form.is_valid():
csv_file = TextIOWrapper(request.FILES['csv_file'].file, encoding='ascii', errors='replace')
#other actions
Я не могу использовать приведенный ниже код, потому что он работает только с двоичными файлами, но вместо этого модуль csv хочет иметь файлы текстового режима. Любые альтернативы для продолжения только с файлами csv.
if not csv_file.name.endswith('.csv'):
messages.error(request, 'THIS IS NOT A CSV FILE')
Вы можете проверить, есть ли запятые и есть ли между ними слова.
В зависимости от того, насколько безопасным это должно быть. Самый простой шаг — просто ограничить тип расширения в поле загрузки HTML.
<input type = "file" accept = ".csv" />
Очевидно, что любой может просто назвать расширение .csv для обхода, но это будет иметь место с любым решением, которое просто проверяет расширения.
Я хочу проверить, является ли файл файлом *.csv