validated_data is empty : django



我试图在序列化器中获得validated_data,但只获得部分数据,

views
class CourseList(APIView, ResponseViewMixin):
def put(self, request, id):
data = request.data
instance = self.get_object(id)
serializer = CourseListSerializer(data=request.data, instance=instance)
if serializer.is_valid(raise_exception=True):
serializer = serializer.save()
serializer
def update(self, instance, validated_data):
print('instance', instance)
print('validated_data', validated_data)
input
{
"name": "course_1008.1",
"description": "Description about course_1008.1 ",
"is_free": "False",
"section":["ee41b01c-7d8b-4718-84ec-6be497114395"],
"keyarea":  "2f59abff-2e39-4cc8-aa72-96974ed85ce5"
}

在这里,当我打印validated_data时,我只能看到这些项::validated_data {'name': 'course', 'description': 'description', 'is_free': False}如何获得剩余的值?

我不知道你为什么要尝试更新而不返回任何内容。

class CourseListSerializer(serializers.ModelSerializer):
class Meta:
model = CourseList
fields = '__all__'
def update(self, instance, validate_data):
print('INSTANCE -->', instance)
print('VALIDATE -->', validate_data)
# only to see the result...
return instance # < ---------

结果:

INSTANCE --> 23  # <----- example of an/your object id
VALIDATE --> {"name": "course_1008.1", 
"description": "Description about course_1008.1 ","is_free": "False"....all the rest....}

首先,您没有向我们展示您的序列化器是如何的(我在这里猜测)。其次,您没有在update()方法中返回值。另外,检查一下你是否正确地发送数据,我们可能会遇到它。

最新更新