我正在尝试导入 csv 文件,我可以毫无问题地导入,但目前的功能接受所有文件类型,我希望该功能仅接受 csv 文件。下面是 view.py 和模板文件。
我的应用程序/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'])
Run Code Online (Sandbox Code Playgroud)
我的应用程序/模板/我的应用程序/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>
Run Code Online (Sandbox Code Playgroud)
编辑
我可以通过按照django 文档添加 validate_file_extension 来找到解决方法
我的应用程序/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])
Run Code Online (Sandbox Code Playgroud)
用于验证文件扩展名的表单小部件
csv_file = forms.FileField(widget=forms.FileInput(attrs={'accept': ".csv"}))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3059 次 |
| 最近记录: |