1

Serialisierung Ich versuche, Daten in diesem Serializer serialisiert werden, aber ich bin immer die Ausgabe immer ist {}Django Übriges Framework-verschachtelte Daten

Hier mein Serializer:

class RelationshipSerializer(serializers.ModelSerializer): 

    user = UserSerializer(read_only=True) 
    related_user = UserSerializer(read_only=True) 

    class Meta: 
     model = models.Relationship 
     fields = (
      'user', 
      'related_user', 
     ) 

hier meiner Meinung nach ist:

related_user_id = body["related_user"] 
related_user = models.User.objects.get(id=related_user_id) 

user = self.get_object() 

user_serializer = serializers.UserSerializer(user).data 
related_user_serializer = serializers.UserSerializer(related_user).data 

# user_serializer and related_user_serializer return valid data. 

data = {"user": user_serializer, "related_user": related_user_serializer} 

serializer = serializers.RelationshipSerializer(data=data) 

serializer.is_valid() # valid 

return Response(serializer.data) 

ich erhalte die ID related_user von Post-Anfrage, dann das Abfrage-Set des tatsächlichen Objekts, und user ist die ID in der URL übergeben: user/{1}/. Ich serialisiere dann jeden Benutzer und erstelle ein Wörterbuch, das an RelationshipSerializer übergeben wird. Der Serializer gibt eine gültige Antwort zurück, aber die Antwort ist {}, was habe ich falsch gemacht?

Antwort

0
class RelationshipSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = models.Relationship 
     fields = (
      'user', 
      'related_user', 
     ) 

views.py

user = self.get_object() 
data = {"user": user.id, "related_user": request.data["related_user"]} 

serializer = serializers.RelationshipSerializer(data=data) 
if serializer.is_vaild(): 
    serializer.save() 
return Response(serializer.data) 
+0

ich das Wörterbuch serialisieren wollen, weil das Objekt tut noch nicht. Also kann ich 'objects.get' nicht gehen. Nachdem ich es serialisiert habe, werde ich es speichern –

+0

siehe Antwort Update – Ykh

+0

Versuchen Sie, Benutzer = self.request.user –

Verwandte Themen