在Django中自定义表单验证错误显示

时间:2019-02-07 04:12:50

标签: python django

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

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

https://imgur.com/SxqIt1N(很抱歉,外部链接,尚无法嵌入图像)

models.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)

1 个答案:

答案 0 :(得分:0)

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

<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,将其命名为...

查看此答案以获取更多详细信息:Check for erros and other values at the widget level - maybe using custom form field