如何编辑Django表单错误消息的CSS?

时间:2019-07-08 08:31:06

标签: python django file-upload django-forms

我在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 %}

有人可以帮助我了解如何解决此问题吗?感谢您能提供的任何帮助

2 个答案:

答案 0 :(得分:1)

您可以使用custom errorlist class进行更改。

但是正如其他人所说,这几乎肯定是错误的做法。表单不是标题,因此这在语义上是不正确的。相反,请使用CSS以所需的方式设置错误的样式,包括向Alex演示的表单添加自定义error_css_class

答案 1 :(得分:0)

您只需要在组件中指定css类的名称即可

class CsvForm(forms.ModelForm):
    error_css_class = 'my_error_class'
....