Ich habe einige Probleme mit dem Serializer. Ich rufe eine Post-Methode an, die ich den Serializer nennen möchte. Auch möchte ich den Benutzer an den Serializer gesendet haben. meine post-Methode ist:Aufruf Serializer in Django Rest Framework
def post(self, request, *args, **kwargs):
serializer = ResourceListSerializer(context={'request': request}, data={})
serializer.is_valid(raise_exception=True)
serializer.save(creator=request.user)
aber es scheint nicht immer die Daten in Serializer werden. Im Serializer scheint self.validated_data leer zu sein. Dies ist der Code auf dem Serializer:
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.")
ein Vorschlag, wie Sie den Serializer richtig aufrufen?
Sie übergeben explizit ein leeres Diktat an den Serializer. –
@DanielRoseman ist es der Teil auf Daten = {}? Ich dachte Kontext hat alle notwendigen Informationen. –