Я пытаюсь импортировать файл csv, который я могу импортировать без каких-либо проблем, но настоящая функциональность принимает все типы файлов, я хочу, чтобы функциональность принимала только файл csv. ниже приведен файл view.py и template.Django загружать только файл csv
MyApp/views.py
def list(request):
# Handle file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
importing_file(request.FILES['docfile'])
MyApp/шаблоны/MyApp/index.html
<form action="{% url 'ml:list' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>{{ form.non_field_errors }}</p>
<p>{{ form.docfile.label_tag }} {{ form.docfile.help_text }}</p>
<p>
{{ form.docfile.errors }}
{{ form.docfile }}
</p>
<p><input type="submit" value="Upload"/></p>
</form>
EDIT
я мог бы найти обходной путь, добавив validate_file_extension согласно django documentation
MyApp/forms.py
def validate_file_extension(value):
if not value.name.endswith('.csv'):
raise forms.ValidationError("Only CSV file is accepted")
class DocumentForm(forms.Form):
docfile = forms.FileField(label='Select a file',validators=[validate_file_extension])
получить тип пантомимы файл и проверить, если это CSV. – MaNKuR
Эта ссылка предоставляет обходное решение http://stackoverflow.com/a/8826854/4915288 – hkhr