Wie ist es möglich, einen Serializer innerhalb eines anderen Serialisierers hinzuzufügen? Hier ist, was ich meine:Django: Hinzufügen von zwei Serialisierern zusammen?
ich ein Userprofile Modell als solche haben:
class UserProfile(models.Model):
user = models.OneToOneField(User)
photo = models.URLField(max_length=128)
ich Beiträge haben, die von dem Benutzer sind:
class Posts(models.Model):
# ... post fields
Ich möchte meine Userprofile mit dem Benutzer zur Serialisierung und Foto, sowie die Beiträge von diesem Benutzer. Hier ist das Ergebnis, das ich bin mit dem Ziel für:
{ "user": <User fields serialized>,
"photo": "www.example.com/path/to/file",
"posts": "[{"from_user": "me", "message": "post message} ,
{"from_user": "me", "message": "post message2"}, ... etc],"
}
In meinem views.py ich zuerst die Beiträge sammeln, die von diesem Benutzer kommen:
user = User.objects.get(pk=1)
user_profile = UserProfile.objects.get(user=user)
user_profile_serializer = UserProfileSerializer(user_profile)
posts = Posts.objects.get_posts_from_user(user)
post_serializer = PostsSerializer(posts, many=True)
# somehow append my post_serializer into my user_profile_serializer?
Hier ist meine PostsSerializer.py:
class PostsSerializer(serializers.ModelSerializer):
class Meta:
model = Posts
fields = ('__all__')
Hier
ist mein UserSerializer.py:
class UserProfileSerializer(serializers.ModelSerializer):
# somehow filter the results depending on User
posts_serializer = PostsSerializer(many=True)
class Meta:
model = UserProfile
fields = ('__all__')
Ich habe versucht, das Benutzerprofil zu serialisieren, und weil ich eine Serializer-Variable in meinem UserProfileSerializer
hinzugefügt habe, nahm ich an, dass es automatisch das Feld posts
hinzufügen würde. Es zeigt nur den User Profiler serialisiert und ignoriert die Beiträge insgesamt.
Kann ich 'get_posts' einfach aus meinen Ansichten aufrufen? –
Nein, Sie würden einfach Ihren Benutzer serialisieren, und es würde die Beiträge automatisch anhängen –
Würden Sie mir bitte mit dieser Frage helfen? Es hängt mit dieser Frage zusammen. http://stackoverflow.com/questions/42150996/django-nest-the-object-im-serializing-into-the-serializer –