【发布时间】:2019-11-17 17:47:55
【问题描述】:
我的 Django 应用程序上有一个表单,它应该只允许用户上传 csv files 并且每当用户上传具有不同扩展名的文件时,我想呈现一条错误消息。目前我检查上传文件的扩展名,如果扩展名不是.csv,那么我在ValidationErrors中添加一个错误
问题是我找不到编辑该错误的 css 的方法。现在它被显示为列表的一个元素,但我想把它放在 h1 标签中。这是我的代码:
forms.py
from django import forms
from .models import CSVUpload
import time
class CsvForm(forms.ModelForm):
csv_file = forms.FileField(widget=forms.FileInput(
attrs= {
'class': 'form-group',
}
))
class Meta:
model = CSVUpload
fields = ('csv_file', )
def save(self):
csvfile = super(CsvForm, self).save()
return csvfile
def clean_csv_file(self):
uploaded_csv_file = self.cleaned_data['csv_file']
if uploaded_csv_file:
filename = uploaded_csv_file.name
if filename.endswith('.csv'):
return uploaded_csv_file
else:
raise forms.ValidationError("File must be csv")
else:
return uploaded_csv_file
模板
{% extends "fileconverter/base.html" %}
{% block content %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.csv_file }}
{{ form.csv_file.errors }}
<button type="submit" class="uploadbutton">Convert CSV</button>
</form>
{% endblock %}
有人可以帮助我了解如何解决此问题吗?感谢您提供的任何帮助
【问题讨论】:
-
有没有views.py文件,也请分享一下。
-
h1标签在这里似乎在语义上非常错误。如果您只想要更大的文本,请使用 css... 您可以使用 css 来设置列表元素的样式,使其看起来也像“h1”元素(无需更改内容)。
标签: python django file-upload django-forms