【问题标题】:Customize form validation error display in Django在 Django 中自定义表单验证错误显示
【发布时间】:2019-07-01 03:32:52
【问题描述】:

当我使用 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)

【问题讨论】:

标签: python django


【解决方案1】:

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

<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

【讨论】:

    猜你喜欢
    • 2014-11-06
    • 2020-12-20
    • 2014-12-24
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2016-03-02
    • 1970-01-01
    相关资源
    最近更新 更多