私はdjangorestframeworkを使用していて、誰かが.../peoplelist/2/markAsSeen
にPUTリクエストを行い、URLのPersonオブジェクトのIDだけを渡します。私はPersonオブジェクト(この場合は2)を取得し、フェッチされたPersonオブジェクトのフィールドhas_been_viewed
を単にTrueに変更します。更新されたPersonオブジェクトは、次にシリアル化され、クライアントに返されます。djangorestframeworkシリアライザエラー:{u'non_field_errors ':[入力なし]'入力]
if request.method == 'PUT':
serializer = PersonSerializer(person,partial=True)#person is a valid object here
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
else:
return Response(serializer.errors,)
シリアライザエラーが{u'non_field_errors': [u'No input provided']}
serializer.data
であるあなたは、シリアライザによって更新される人物のインスタンスを提供しませんが、とそのインスタンスを更新する添付データだ
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = ('id',)
ありがとうございます。シリアライザの検証がデシリアライゼーションのためのものであることはわかりませんでした。シリアライザ(読み書き用)を呼び出すたびに、プロセスが正常に実行されたことを確認する必要があると思っていました。 – user798719