我在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 %}
有人可以帮助我了解如何解决此问题吗?感谢您能提供的任何帮助
答案 0 :(得分:1)
您可以使用custom errorlist class进行更改。
但是正如其他人所说,这几乎肯定是错误的做法。表单不是标题,因此这在语义上是不正确的。相反,请使用CSS以所需的方式设置错误的样式,包括向Alex演示的表单添加自定义error_css_class
。
答案 1 :(得分:0)
您只需要在组件中指定css类的名称即可
class CsvForm(forms.ModelForm):
error_css_class = 'my_error_class'
....