【问题标题】:How to add mobile number validater in Django model?如何在 Django 模型中添加手机号码验证器?
【发布时间】:2021-11-01 22:06:08
【问题描述】:

def validate_mobile_number(值): 如果不是 str(value).isdigit(): raise ValidationError("请输入有效的手机号码") 类 ModelA(AbstractUser):
mobile = models.CharField(_("Mobile"), unique=True, max_length=10,validators[validate_mobile_number,validators.MinLengthValidator(limit_value=10)])

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: django django-models


【解决方案1】:

如果您将它与模板和 ModalForm 一起使用,您可以添加一个“clean_mobile”函数来验证移动设备。

class ModalAForm(form.ModalForm):
    class Meta:
        modal = ModalA
        fields = '__all__'

    def clean_mobile(self):
        mobile = self.cleaned_data['mobile']
        if not mobile.isdigit():
            raise forms.ValidationError('Please Enter Valid Mobile Number')
        return mobile

否则,如果您将它与 api 调用一起使用,您可以在 modalserializer 类中添加相同的函数名称为“validate_mobile”,例如

def validate_mobile(self, value):
    if not value.isdigit():
        raise serializers.ValidationError('Please Enter Valid Mobile Number')
    return value

【讨论】:

    【解决方案2】:
    def validate_mobile_number(value):
       if not str(value).isdigit():
         raise ValidationError("Please Enter Valid Mobile Number")
            
    class ModelA(AbstractUser):     
       mobile = models.CharField(_("Mobile"), unique=True, max_length=10, 
                       validators[validate_mobile_number, 
                       validators.MinLengthValidator(limit_value=10)])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 2017-02-06
      相关资源
      最近更新 更多