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

使用Django框架验证手机号是否存在时始终返回False求助

Django手机号查询始终返回False的排查方案
  • 核对请求参数键名
    确认前端传递的参数名与后端request.POST.get('mobile_no')的键完全一致。前端可能误传为mobile、phone等名称,导致后端获取到None或空值。可临时添加打印语句验证:

    print("获取到的手机号:", mobile_no)
    
  • 匹配数据库中手机号格式
    检查数据库内mobile_no字段的实际值,是否与前端传递的格式完全一致(比如是否带区号、空格、特殊符号)。例如数据库存的是+8613800138000,前端传纯数字13800138000就会匹配失败。

  • 检查模型字段类型
    确保User模型中mobile_no字段使用CharField而非IntegerField。手机号可能包含前导零、区号符号,且超长数字会超出整数存储范围,用字符串类型更稳妥。

  • 直接验证数据库记录
    手动执行SQL查询,确认目标手机号是否存在于对应表中:

    SELECT * FROM your_app_user WHERE mobile_no = '待验证的手机号';
    

    (替换your_app_user为实际表名)

  • 排查数据库事务与路由

    • 若刚添加手机号,确认事务已提交,未提交的事务无法被查询到。
    • 若项目用了多数据库或分表,需确认User模型对应的数据库/表正确。

调试代码示例

将exists()替换为first(),便于直接查看查询结果:

@csrf_exempt
def forget_password(request):
    mobile_no = request.POST.get('mobile_no')
    verify_obj = models.User.objects.filter(mobile_no=mobile_no).first()
    print("查询结果:", verify_obj)
    if verify_obj:
        return JsonResponse({'bool':True})
    else:
        return JsonResponse({'bool':False,'msg' : 'mobile_no does not exist!!'})

内容的提问来源于stack exchange,提问作者Bawar Rwandzy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:31:05