Как сериализовать поле объекта в django rest framework
I have Profile model, which is auth model. And I have Blog model. I want to serialize model as it will give me {author: {user_name:.., photo: photo_path}, blog_title:some_title, ..}. Shortly, I want use author field as inner serialiser. I have already ProfileSerialiser and BlogSerializer. Here's my BlogList serializer:
class BlogListSerializer(serializers.ModelSerializer):
author = MiniProfileSerializer()
class Meta:
model = Blog
fields = ['title', 'content', 'like_count', 'author']
read_only_fields = ['views', 'author', 'like_count']
И MiniProfileSerializer:
class MiniProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ['user_name', 'image']
и посмотреть:
class BlogListAPIView(generics.ListCreateAPIView):
serializer_class = BlogListSerializer
queryset = Blog.published.all()
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
Django REST Framework не поддерживает запись во вложенный сериализатор из коробки. Вы можете ознакомиться с DRF Writeable Nested, или написать свое собственное поведение при создании, перезаписав create() в BlogListSerializer.
EDIT: Вот еще несколько документов по этой теме: https://www.django-rest-framework.org/api-guide/relations/#writable-nested-serializers