12
我正在使用djangorestframework,並且有人向.../peoplelist/2/markAsSeen
發出PUT請求,並在URL中傳入一個Person對象的ID。我獲取Person對象(在這種情況下爲2),然後將獲取的Person對象的字段has_been_viewed
更改爲True。然後將更新的Person對象序列化並返回給客戶端。djangorestframework序列化錯誤:{u'non_field_errors':[u'No input provided']}
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',)
謝謝湯姆。我沒有意識到串行器驗證是用於反序列化onyl的。我曾經想過,無論何時您調用序列化程序(用於閱讀或寫入),都需要進行驗證以確保過程正常。 – user798719