通过context参数附加的数据,可以通过Serializer对象的context属性获取。
urlpatterns = [
url(r'image_codes/(?P<image_code_id>.+)/$',views.ImageCodeAPIView.as_view()),
url(r'sms_codes/(?P<mobile>1[3456789]\d{9})/$',views.SMSCodeAPIView.as_view()),
]
class SMSCodeAPIView(GenericAPIView):
# 指定当前序列化器类
serializer_class = serializers.SMSCodeSerializer
"""短信验证码"""
def get(self,request,mobile):
"""
:param request: drf框架提供的request
:return:
"""
# 校验数据[图片验证码]
# 使用 request.query_params GET提交的数据,会自动转换成字典
serializer = self.get_serializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
…………
# 通过序列化器中的context属性,可以获取客户端的请求对象request、也可以获取视图对象以及视图对象中的数据
mobile = self.context["view"].kwargs["mobile