【发布时间】:2018-08-15 15:54:40
【问题描述】:
我有一个电话字段的 RegexValidator。当我再次呈现表单时,它可以返回错误。但是,我在尝试使用空白输入提交表单时注意到“请填写此字段”错误消息,这不会重新呈现表单以显示该消息。我如何将这种类型的消息用于我自己的验证器?
模型.py
class Proveedor(models.Model):
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$',
code='invalid_phone_number',
message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
telefono = models.CharField(max_length=15, validators=[phone_regex], verbose_name='Teléfono')
telefono_de_representante = models.CharField(max_length=15,
validators=[phone_regex],
verbose_name='Teléfono de representante')
...
Forms.py - 我认为 error_messages 部分是一个潜在的解决方案,但它并没有改变任何东西
class ProveedorForm(BaseModelForm):
class Meta:
model = Proveedor
fields = ('nombre', 'telefono', 'representante', 'telefono_de_representante', 'correo_electronico')
def __init__(self, *args, **kwargs):
super(ProveedorForm, self).__init__(*args, **kwargs)
self.fields['telefono'].error_messages = {'invalid_phone_number': 'Phone number must be entered in the format: \'+999999999\'. Up to 15 digits allowed.'}
Views.py - 我可以访问最后一个渲染语句中的错误(如果表单无效),但这需要再次渲染页面
def proveedores(request, error=None):
if request.method == "POST":
form = ProveedorForm(request.POST)
if form.is_valid():
form.save()
return redirect('menu:proveedores')
return render(request, 'menu/proveedores.html', {'form': form})
如何为我的电话号码验证器发送此类消息?
感谢您的帮助!
编辑
阅读 Guillermo 的回复后,我意识到“必需”错误消息未连接到模型验证器。有没有办法将模型验证器连接到前端错误消息,这样用户就不必提交表单来接收消息?
【问题讨论】: