修复了认证上传失效问题
This commit is contained in:
@@ -209,36 +209,45 @@ class UserInfoUpdateView(APIView):
|
|||||||
boss.nickname = nick
|
boss.nickname = nick
|
||||||
result['nicheng'] = nick
|
result['nicheng'] = nick
|
||||||
|
|
||||||
# 手机号 —— 极简可靠版
|
# 手机号 —— 失败不阻塞其他字段(头像/昵称)的保存
|
||||||
code = request.data.get('shoujihao_code')
|
code = request.data.get('shoujihao_code')
|
||||||
|
phone_error = None
|
||||||
if code:
|
if code:
|
||||||
phone = self._get_phone_safe(code, request)
|
phone = self._get_phone_safe(code, request)
|
||||||
if phone is None:
|
if phone is None:
|
||||||
return Response({'code': 6, 'msg': '手机号获取失败,请重新授权', 'data': None}, status=400)
|
phone_error = '手机号获取失败,请重新授权'
|
||||||
user.Phone = phone
|
else:
|
||||||
user.PhoneVerified = True
|
user.Phone = phone
|
||||||
result['phone'] = phone
|
user.PhoneVerified = True
|
||||||
|
result['phone'] = phone
|
||||||
|
|
||||||
if not result:
|
if not result and not phone_error:
|
||||||
logger.warning("[USERINFO_XIUGAI] 无更新,result 为空")
|
logger.warning("[USERINFO_XIUGAI] 无更新,result 为空")
|
||||||
return Response({'code': 5, 'msg': '无更新', 'data': None}, status=400)
|
return Response({'code': 5, 'msg': '无更新', 'data': None}, status=400)
|
||||||
|
|
||||||
# 诊断日志:save 前的状态
|
# 诊断日志:save 前的状态
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"[USERINFO_XIUGAI] 准备保存 result_keys=%s, boss_pk=%s, boss_nickname_after=%r, "
|
"[USERINFO_XIUGAI] 准备保存 result_keys=%s, boss_pk=%s, boss_nickname_after=%r, "
|
||||||
"user_Avatar=%r, user_Phone=%r",
|
"user_Avatar=%r, user_Phone=%r, phone_error=%r",
|
||||||
list(result.keys()),
|
list(result.keys()),
|
||||||
getattr(boss, 'pk', None),
|
getattr(boss, 'pk', None),
|
||||||
getattr(boss, 'nickname', None),
|
getattr(boss, 'nickname', None),
|
||||||
getattr(user, 'Avatar', None),
|
getattr(user, 'Avatar', None),
|
||||||
getattr(user, 'Phone', None),
|
getattr(user, 'Phone', None),
|
||||||
|
phone_error,
|
||||||
)
|
)
|
||||||
|
|
||||||
with transaction.atomic():
|
# 有字段更新时先保存(即使手机号失败,头像/昵称也应入库)
|
||||||
user.save()
|
if result:
|
||||||
boss.save()
|
with transaction.atomic():
|
||||||
|
user.save()
|
||||||
|
boss.save()
|
||||||
|
logger.warning("[USERINFO_XIUGAI] 保存成功 result_keys=%s", list(result.keys()))
|
||||||
|
|
||||||
|
if phone_error:
|
||||||
|
# 其他字段已保存,但手机号失败 —— 返回已保存的字段供前端更新缓存
|
||||||
|
return Response({'code': 6, 'msg': phone_error, 'data': result}, status=200)
|
||||||
|
|
||||||
logger.warning("[USERINFO_XIUGAI] 保存成功 boss_pk=%s", getattr(boss, 'pk', None))
|
|
||||||
return Response({'code': 0, 'msg': '更新成功', 'data': result})
|
return Response({'code': 0, 'msg': '更新成功', 'data': result})
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user