1
我在序列化程序中遇到了一些問題。我正在調用一個我希望它調用序列化器的post方法。另外我想讓用戶發送到序列化程序。我的發佈方法是:在django rest框架中調用序列化程序
def post(self, request, *args, **kwargs):
serializer = ResourceListSerializer(context={'request': request}, data={})
serializer.is_valid(raise_exception=True)
serializer.save(creator=request.user)
但它似乎並沒有得到串行器中的數據。在序列化程序中,self.validated_data似乎是空的。這是串行器上的代碼:
def save(self, **kwargs):
"""
Update `project` and `resource_type` fields in database.
"""
resources = self.validated_data.get('resources')
if resources is not None and len(resources) > 0:
self.validated_data['project'] = self.validated_data['resources'][0].project
self.validated_data['resource_type'] = self.validated_data['resources'][0].resource_type
try:
project = self.data.get('project')
return super(ResourceListSerializer, self).save(**kwargs)
except:
try:
project = self.validated_data['project']
return super(ResourceListSerializer, self).save(**kwargs)
except:
raise serializers.ValidationError("Resource List should belong to a Project.")
有關如何正確調用序列化程序的任何建議?
您明確地將一個空的字典傳遞給序列化程序。 –
@DanielRoseman是數據= {}的一部分嗎?我認爲上下文有所有必要的信息。 –