首页 > 解决方案 > 如何验证 django DRF 中的字段,同时它可以将电子邮件或电话作为值

问题描述

我想创建一个序列化程序,让用户使用他们的用户名或电话号码登录,现在如果他们使用电话号码或用户名,我需要不同的验证。

我知道我可以在视图中实现这一点,但是,我正在寻找一种解决方案来处理序列化程序中的这种情况。

标签: pythondjangodjango-rest-frameworkserialization

解决方案


在 DRF 中,可以使用 validate 方法,例如使用以下代码:

if '@' in data['value']:
    # the validation for email should be done here
    validator = EmailValidator()
    validator(data['value'])
    return data
else:
    # here the mobile number should be validated
    pass

推荐阅读