Валидация "8" в django-phonenumber-field
В своем проекте использую django-phonenumber-field для валидации телефонных номеров.
telephone = PhoneNumberField(region="RU", widget=RegionalPhoneNumberWidget(attrs={
'placeholder': "+79248347257"}))
Вариант с написание номера через "8" вместо "+7" выдает ошибку. Подскажите как сделать, что бы принимало оба варианта.
Ответы (1 шт):
По одной строчке кода сложно дать точный ответ на твою проблему. Как я понял, у тебя проблема с валидацией, ибо форма отправляется и сохраняется в db, но ждет определённый формат. Попробуй настроить валидатор под свою модель. Чтобы просто-напросто формат не принимался.
from django.core.validators import RegexValidator
class Test(models.Model):
phoneNumberRegex = RegexValidator(regex = r"^\+?1?\d{8,15}$")
phoneNumber = models.CharField(validators = [phoneNumberRegex], max_length = 16, unique = True)
Так же могу предложить вариант, которым лично я пользуюсь. Это принимать цифры после номерного знака страны, если данные тебе нужны просто-напросто для хранения информации и дальнейшими манипуляциями с номером пользователя.