Как я могу отредактировать css сообщения об ошибке формы django`? - PullRequest
1 голос
/ 08 июля 2019

У меня есть форма в моем приложении 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

template


{% 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 ]

1 голос
/ 08 июля 2019

Вы можете изменить это, используя пользовательский класс ошибок списка .

Но, как уже говорили другие, это почти наверняка неправильно.Формы не являются заголовками, так что это семантически неверно.Вместо этого используйте CSS для стилизации ваших ошибок так, как вы хотите, включая добавление пользовательского error_css_class к форме, как демонстрирует Алекс.

0 голосов
/ 08 июля 2019

Вам просто нужно указать имя класса css в вашем компоненте:

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