У меня возникли проблемы с сериализатором. Я вызываю метод post, который я хочу, чтобы он вызывал сериализатор. Также я хочу, чтобы пользователь отправил сериализатору. мой почтовый метод:вызов serializer в каркасе отдыха django
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.")
любое предложение о том, как правильно вызвать сериализатор?
Вы явно передаете пустой dict в сериализатор. –
@ DanielRoseman - это часть данных = {}? Я думал, что контекст имеет всю необходимую информацию. –