我创建了一个Django表单:
class AddFaceForm(forms.ModelForm):
class Meta:
model = Face
fields = ('person', 'x', 'y', 'w', 'h')
在Face
模型中,w
定义为
w = models.DecimalField(
'Relative width',
validators=[MinValueValidator(0.05), MaxValueValidator(1)]
)
如果用户为宽度输入0,则Django在表单验证时返回的错误消息为
确保该值大于或等于0.05。
因此,它很好地包含了来自MinValueValidator
的值。我想把它改为“相对宽度必须是”
为了实现这一点,我尝试在addFaceForm Meta中自定义错误
class AddFaceForm(forms.ModelForm):
class Meta:
model = Face
fields = ('person', 'x', 'y', 'w', 'h')
error_messages = {
'w': {
'min_value': 'Relative width must be >= 0.05'
}
}
但这意味着要硬编码0.05的值。我想从模型定义中读一下。如何做到这一点?
问得好。
MinValueValidator是BaseValidator的子类。并且,BaseValidator在其构造函数中包含可选消息。从代码中,您可以看到消息可以使用以下三个参数:limit_value
,show_value
和value
。limit_value
是验证器的最小值这种情况下。show_value
是用户输入的清除值,value
是用户输入的原始值。因此,您可以执行以下操作来实现您的目标:
from django.core.validators import MinValueValidator
from django.db import models
from django.utils.translation import ugettext_lazy as _
class Face(models.Model):
w = models.DecimalField(
'Relative width',
max_digits=5,
decimal_places=2,
validators=[MinValueValidator(0.05, _('Relative width must be >= %(limit_value)s'))],
)
或者,如果希望在表单中指定错误消息,则可以执行以下操作:
from django import forms
from django.utils.translation import ugettext_lazy as _
from .models import Face
class FaceForm(forms.ModelForm):
class Meta:
model = Face
fields = ['w']
error_messages = {
'w': {
'min_value': _('Relative width must be >= %(limit_value)s')
}
}
DecimalField文档告诉您可以插值极限值
。
我在Codeigniter中为表单验证创建了一个自定义函数。它连接到URL帮助器,我通过制作MY_URL_帮助器实现了这一点。 助手修改: 我如何称呼验证: 美元这个- 语言文件: 但是提交表单时不会显示任何错误信息。如果我将valid_url函数更改为true和false,它将执行该函数。所以它运行这个函数。 如何使错误消息出现?
问题内容: 我可以看到使用表单时如何向字段添加错误消息,但是模型表单呢? 这是我的测试模型: 我的模型表格: 在字段中的错误信息:和是: 这是必填栏 如何以模型形式进行更改? 问题答案: 对于简单的情况,你可以指定自定义错误消息
问题内容: 我有一个带有开始和结束日期范围的Django模型。我想强制执行验证,以便没有两个记录具有重叠的日期范围。最简单的实现方式是什么,这样我就不必重复编写逻辑了? 例如,我不想在Form 和 a 以及 admin表单中重新实现此逻辑, 并且 模型被重写。 据我所知,Django在全球范围内强制执行这些类型的条件并不容易。 Googling并不是很有帮助,因为“模型验证”通常是指验证特定的模型
当我们在OSB 12c中添加Validate Node以根据XSD验证传入请求时,如果验证失败,则在某些错误消息中会显示导致验证错误的字段名。但仅对于十进制值,错误消息只显示Invalid decimal Value,而没有提及引发错误的字段。我们能克服这个问题吗
我在数据库上实现查询层,使用和Spring Boot项目在sql数据库上执行CRUD操作。在GraphQL模式中,我提到了一些必须的字段,当这些字段在查询中没有提到时,它会以默认格式返回状态代码的错误消息。 错误: 这是我的代码与层架构模式 控制器: 服务: 配置: BookDataFetcher: 上面的代码按预期工作,但我这里的问题是如何自定义错误消息?在错误消息中,我想提及状态,因为这是来自