Django REST框架非模型序列化程序和BooleanField

Django REST框架非模型序列化程序和BooleanField,django,django-rest-framework,Django,Django Rest Framework,在尝试处理以下用例时,我似乎遇到了一堵充满令人困惑的结果的墙: URL: '^api/event/(?P<pk>[0-9]+)/registration$' payload: {"registered": "true"} or {"registered": "false"} 并使用以下命令从APIView的put方法调用它: serializer = RegistrationSerializer(data=request.DATA) 但是它不工作,serializer.data总

在尝试处理以下用例时,我似乎遇到了一堵充满令人困惑的结果的墙:

URL: '^api/event/(?P<pk>[0-9]+)/registration$'
payload: {"registered": "true"} or {"registered": "false"}
并使用以下命令从APIView的put方法调用它:

serializer = RegistrationSerializer(data=request.DATA)
但是它不工作,
serializer.data
总是包含`{“registered”:False}

从一个外壳上,我尝试了另一个单独的测试:

>>> rs = RegistrationSerializer(data={'registered':True})
>>> rs
<app.serializers.RegistrationSerializer object at 0x10a08cc10>
>>> rs.data
{'registered': False}
rs=RegistrationSerializer(数据={'Registrated':True}) >>>rs >>>遥感数据 {'registered':False}
我做错了什么?处理此用例的最佳方法是什么?

在访问
rs.data
之前,您需要先调用
rs.is\u valid()


如果您不这样做,框架确实应该引发异常。

这就成功了!谢谢你,汤姆。我再次检查了文档,事实上在“验证”部分中指出应该始终调用
.is\u valid()
方法,但我完全没有找到它。
>>> rs = RegistrationSerializer(data={'registered':True})
>>> rs
<app.serializers.RegistrationSerializer object at 0x10a08cc10>
>>> rs.data
{'registered': False}