我想使用电话号码作为用户名创建帐户,并生成otp代码。现在我想验证我的电话号码。我创建了一个有效的方法来验证我的电话号码,但是通过post方法调用它,但是我得到了一个错误 这是我的观点
class GetPhoneNumber(CreateAPIView):
queryset = TempRegistration.objects.all()
serializer_class = AccountsSerializer
def is_phone_valid(phone_number):
if phone_number:
MOBILE_REGEX = re.compile('^(?:\+?88)?01[15-9]\d{8}$')
if MOBILE_REGEX.match(phone_number):
return True
else:
return False
else:
return False
def post(self, request, *args, **kwargs):
return self.is_phone_valid(phone_number)
models.py
class TempRegistration(models.Model):
phone_number = models.CharField(max_length=45)
otp_code = models.CharField(max_length=6)
def __str__(self):
return self.phone_number
似乎您正在使用Django REST Framework。如果是,请使用DRF Serializers的field-level--DRF doc验证,如下所示
注意:您不需要重写
post(...)
类的CreateAPIView
方法您发布的回溯说明,它无法在post方法中找到要传递给
self.is_phone_valid(phone_number)
的phone_number
其次,您的问题是如何从类内部调用
is_phone_valid
?您需要将passself
作为此方法的第一个参数您必须定义
phone_number
变量。我希望您使用的是DRF,那么参数phone_number
将在request.data
中可用相关问题 更多 >
编程相关推荐