Django 如何覆盖模型或模型表单中的错误消息?

Django 如何覆盖模型或模型表单中的错误消息?,django,Django,对不起我的英语。不幸的是,我无法在论坛和谷歌上找到解决方案。我请求您帮助我找出如何在ModelForm或Model中重写错误表。有必要在验证期间显示我定义的消息,而不是标准消息。我经常收到一条信息,而不是我的“请填写此字段”。不要太苛刻,我是初学者。如果可能,请详细解释并举例说明。谢谢下面是我使用的代码 形式 观点 模型 在HTML文件中,不应使用{{form.as_p}},而应手动构造表单,以便处理错误消息: 比如: <!-- person_form.html --> <fo

对不起我的英语。不幸的是,我无法在论坛和谷歌上找到解决方案。我请求您帮助我找出如何在ModelForm或Model中重写错误表。有必要在验证期间显示我定义的消息,而不是标准消息。我经常收到一条信息,而不是我的“请填写此字段”。不要太苛刻,我是初学者。如果可能,请详细解释并举例说明。谢谢下面是我使用的代码

形式

观点

模型


在HTML文件中,不应使用
{{form.as_p}}
,而应手动构造表单,以便处理错误消息:

比如:

<!-- person_form.html -->
<form method="post">
    {% csrf_token %}
    <fieldset>
        <div class="form-group">
            <label for="{{ form.firstname.id_for_label }}">Prénom</label>
            <input type="text" id="{{ form.firstname.id_for_label }}" name="{{ form.firstname.html_name }}"
                value="{{ form.firstname.value|default_if_none:'' }}"
                class="form-control {% if form.firstname.errors %}is-invalid{% endif %}" autofocus="">
            {% for error in form.firstname.errors %}
            <span class="text-danger">Неверно указали данные, попробуйте еще раз!</span>
            <br />
            {% endfor %}
        </div>
    </fieldset>
    <div class="text-right">
        <button type="submit" class="btn btn-primary">Enregistrer</button>
    </div>
</form>

{%csrf_令牌%}
名词
{%form.firstname.errors%}
Неверно указали данные, попробуйте еще раз!

{%endfor%} 登记员
对于自动生成的表单{{form.as_p},如何做到这一点?你应该帮忙吗?
    def exp_index(request):
        if request.method == 'POST':
            pForm = PersonForm(request.POST)
            if pForm.is_valid():
                pForm.save()
                persons = Person.objects.all()
                pForm = PersonForm()
                add_message = 'Можете добавить еще одну запись!'
                context= {'person': persons, 'form': pForm, 'add_message': add_message}
                return render(request, 'exp/exp_index.html', context)
            else:
                persons = Person.objects.all()
                error_message = 'Неверно указали данные, попробуйте еще раз!'
                context= {'person': persons, 'form': pForm, 'error_message': error_message}
                return render(request, 'exp/exp_index.html', context)
        else:
            pForm = PersonForm()
            person = Person.objects.all()
            context= {'person': person, 'form': pForm}
            return render(request, 'exp/exp_index.html', context)
    class Person(models.Model):
        l=[[None, 'выбрать значение'],['g', 'хорошем'], ['b', 'плохом'], ['n', 'нормальном']]
        def iterPersonChoices(list):
            for i in list:
                yield i
        name = models.CharField(max_length=20, null=False, blank=False, db_column='your_name',
                                error_messages={'invalid': 'Мое сообщение об ошибке', 'blank': 'Мое сообщение '
                                'об ошибке', 'null': 'Мое сообщение об ошибке'})
        mood = models.CharField(max_length=1, choices=iterPersonChoices(l))
<!-- person_form.html -->
<form method="post">
    {% csrf_token %}
    <fieldset>
        <div class="form-group">
            <label for="{{ form.firstname.id_for_label }}">Prénom</label>
            <input type="text" id="{{ form.firstname.id_for_label }}" name="{{ form.firstname.html_name }}"
                value="{{ form.firstname.value|default_if_none:'' }}"
                class="form-control {% if form.firstname.errors %}is-invalid{% endif %}" autofocus="">
            {% for error in form.firstname.errors %}
            <span class="text-danger">Неверно указали данные, попробуйте еще раз!</span>
            <br />
            {% endfor %}
        </div>
    </fieldset>
    <div class="text-right">
        <button type="submit" class="btn btn-primary">Enregistrer</button>
    </div>
</form>