次のユースケースに対処しようとすると、不可解な結果でいっぱいの壁にぶつかったようです。
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}
私は何を間違っていますか?このユースケースを処理する最良の方法は何ですか?