首页 > 解决方案 > 在 Django 中自定义表单验证错误显示

问题描述

当我使用 form.is_valid() 时,Django 会自动输出下面链接中显示的验证错误消息(红色圈出)。但是,如果我想使用自定义逻辑自定义该消息但以相同的方式显示它怎么办。我怎么做?

下面链接的页面允许您将电话号码注册到数据库。我想添加一个取消订阅页面,在其中查询数据库,如果电话号码存在,则删除该号码。但如果它在数据库中不存在,我想显示消息“电话号码当前未注册”。

https://imgur.com/SxqIt1N(对不起,外部链接,还不能嵌入图片)

模型.py

class PhoneNumber(models.Model):
    country = models.CharField(max_length = 1)
    area = models.CharField(max_length = 3)
    phone_number = models.CharField(max_length = 7)
    reg_date = models.DateTimeField(default=timezone.now)

    class Meta:
        unique_together = ('country', 'area', 'phone_number')

    def add_to_database(self):
        self.save()

    def __str__(self):
        return str(self.country) + str(self.area) + str(self.phone_number)

标签: pythondjango

解决方案


您可以单独访问字段错误,这是一个示例:

<form action="." method="get">
    {% csrf_token %}
    <p>{{ form.username.label }}: {{ form.username }}</p>
    <p>{{ form.password.label }}: {{ form.password}}</p>

    <ul>
        {% for error in form.password.errors %}
            <li>{{ error }}</li>    
        {% endfor %}
    </ul>

   <button type="submit">submit</button>
</form>

此代码将与password字段相关的错误显示为无序列表。你可以制作一个表格,一些 div,你可以命名它......

查看此答案以获取更多详细信息:检查小部件级别的错误和其他值 - 可能使用自定义表单字段


推荐阅读