Я хочу установить два типа полей в одном столбце. Я выберу email и приму только формат email, предположим, если я выберу sms и приму только формат номера телефона.
Я хочу установить два типа полей в одном столбце.Я выберу email только принимаю формат email, допустим если я выберу sms только принимаю формат номера телефона.Это работает на python или django.
Serializer:
if type=='2':
def isValidEmail(to):
if len(to) > 7:
if re.match("^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$", to) != None:
raise serializers.ValidationError("email valid")
raise serializers.ValidationError("email not valid")
elif type=='3':
def isValidPhone(to):
if len(to) > 7:
if re.match(r'^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$', to) != None:
raise serializers.ValidationError(" valid")
raise serializers.ValidationError("not valid")
else:
pass
модель:
class Notification(models.Model):
title = models.CharField(max_length=200)
type = models.SmallIntegerField(choices=((1,'Desktop'),(2,'Email'),(3,'SMS')))
subject = models.CharField(max_length=255, blank=True,null=True)
message = models.CharField(max_length=200)
to = models.TextField()
cc = models.EmailField(max_length = 254, blank=True,null=True)
bcc = models.EmailField(max_length = 254, blank=True,null=True)
attachment = models.FileField(upload_to ='uploads/',blank=True,null=True)
created_on = models.DateTimeField(auto_now_add=True)