Я хочу установить два типа полей в одном столбце. Я выберу 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)
Вернуться на верх