在尝试处理以下用例时,我似乎遇到了充满令人费解的结果:
URL: '^api/event/(?P<pk>[0-9]+)/registration$'
payload: {"registered": "true"} or {"registered": "false"}
我检索与给定pk对应的事件对象,然后基于我想要的:
- 在 GET 请求中检索经过身份验证的用户是否已注册
- 在 PUT 中更改注册状态。
一切正常,直到我想处理 PUT 请求中的传入有效负载。我尝试过创建这样的序列化程序:
class RegistrationSerializer(serializers.Serializer):
registered = fields.BooleanField()
并从 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}
我究竟做错了什么?处理此用例的最佳方法是什么?