【问题标题】:How can I edit the css of an django form error message`?如何编辑 django 表单错误消息的 css?
【发布时间】: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


【解决方案1】:

您可以使用custom errorlist class 更改此设置。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这不起作用,除非您将表单呈现为段落
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2016-09-04
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多