Django正则表达式验证器消息未显示

时间:2018-08-27 07:47:33

标签: django python-3.6

我的RegexValidator似乎正在工作,因为如果以错误的格式输入phone_number,则不会保存该表单,但是不会显示错误消息。如果格式与正则表达式一致,则保存表格。我检查了帖子Django regex validator message has no effect并包含了code属性,但它没有任何改变。看起来有些东西丢失了,但是我不知道是什么。我的models.py和forms.py如下:

#models.py
from django.db import models
from django.core.validators import RegexValidator

class Notification(models.Model):
    sender = models.EmailField(max_length = 100)
    status = models.CharField(max_length = 50)
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
    message_info = models.TextField(max_length = 1000)

    def __str__(self):
        return self.message_info[:100]

class ScheduleNotification(Notification):
    company = models.CharField(max_length = 50)
    phone_regex = RegexValidator(
        regex=r'^\+?1?\d{9,15}$',
        message="Phone number must be entered in the format: '+79999999999'. Up to 15 digits allowed.",
        code="invalid")
    phone_number = models.CharField(validators=[phone_regex], max_length=17, blank=False)

    def __str__(self):
        return self.sender

#forms.py
from django import forms
from .models import Notification, ScheduleNotification
...
class ScheduleNotificationForm(forms.ModelForm):
    class Meta:
        fields = ['sender', 'company', 'phone_number', 'message_info']
        labels = {
            "sender": "your email:",
            "company": "your company:",
            "phone_number": "your mobile:",
            "message_info": "type your message:"
        }

1 个答案:

答案 0 :(得分:0)

RegexValidator(regex = regex,message =(message),)在()中创建一个类似包含消息的