You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django模型中添加手机号码验证器?

Django模型内配置手机号码合法性校验规则实现方案

实现步骤

1. 自定义手机号校验函数

首先定义独立的校验函数,接收字段值作为入参,校验不通过时抛出ValidationError异常即可。

2. 模型字段绑定校验规则

在手机号对应的CharField字段的validators参数中,传入自定义校验函数、以及内置的长度校验器即可完成配置。

完整可运行代码示例

# 先导入依赖模块
from django.core.exceptions import ValidationError
from django.core import validators
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils.translation import gettext_lazy as _

# 自定义手机号校验函数
def validate_mobile_number(value):
    if not str(value).isdigit():
        raise ValidationError("请输入合法的手机号码")

# 模型定义
class ModelA(AbstractUser):
    mobile = models.CharField(
        _("手机号码"), 
        unique=True, 
        max_length=10,
        validators=[validate_mobile_number, validators.MinLengthValidator(limit_value=10)]
    )

补充说明

  • 上述示例适配10位长度的纯数字手机号规则,如需适配国内11位手机号,可将max_length和MinLengthValidator的limit_value参数调整为11,也可在校验函数中增加正则匹配逻辑,限制号段格式
  • 配置完成后,模型执行save操作、ModelForm/Admin表单提交时都会自动触发该校验规则,无需额外编写调用逻辑

内容的提问来源于stack exchange,提问作者Akash Nagtilak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:21:01