мой RegexValidator, похоже, работает, потому что если номер_телефона введен в неправильном формате, форма не сохраняется, но сообщение об ошибке не отображается.Если формат соответствует регулярному выражению, то форма сохраняется.Я проверил сообщение Сообщение валидатора Django regex не имеет никакого эффекта и включил атрибут кода, но это ничего не изменило.Похоже, что-то не хватает, но я не могу понять, что. Мои модели.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:"
}