Почему запрос get не получает данные из подключенных моделей?

Мой GET-запрос на список всех постов, комментариев и ответов не получает все связанные модели.

models.py

from django.db import models
from django.contrib.auth import get_user_model
from django.conf import settings

User = get_user_model()


class Post(models.Model):
    id = models.AutoField(primary_key=True)
    text = models.TextField(max_length=165)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f'{self.author}: {self.text}'


class Images(models.Model):
    id = models.AutoField(primary_key=True)
    image = models.ImageField(upload_to='images/')
    post_id = models.ForeignKey(Post, on_delete=models.CASCADE)


class Comment(models.Model):
    id = models.AutoField(primary_key=True)
    text = models.CharField(max_length=165)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    date = models.DateTimeField(auto_now_add=True)

serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username')

class CommentSerializer(serializers.ModelSerializer):
    author = UserSerializer(read_only=True)
    replies = ReplySerializer(many=True, read_only=True)

    class Meta:
        model = Comment
        fields = "__all__"


class ImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Images
        fields = ('image',)


class PostSerializer(serializers.ModelSerializer):
    images = ImageSerializer(many=True, read_only=True)
    author = UserSerializer(read_only=True)
    comments = CommentSerializer(many=True, read_only=True)

    class Meta:
        model = Post
        fields = "__all__"

views.py


class PostsViewSet(ModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

urls.py

router = DefaultRouter()
router.register('posts', PostsViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(router.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Итак, я создал суперпользователя и добавил несколько постов и изображений через админ-панель. И после всего этого я получаю следующее:

@baseUrl = http://localhost:8000/

GET {{baseUrl}}/posts/
Content-Type: application/json
HTTP/1.1 200 OK
Date: Mon, 27 Jan 2025 18:17:52 GMT
Server: WSGIServer/0.2 CPython/3.12.7
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
X-Frame-Options: DENY
Content-Length: 311
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin

[
  {
    "id": 1,
    "author": {
      "id": 1,
      "username": "admin"
    },
    "text": "first post",
    "date": "2025-01-22T18:34:56.097351Z"
  },
  {
    "id": 2,
    "author": {
      "id": 1,
      "username": "admin"
    },
    "text": "Second post",
    "date": "2025-01-27T11:07:42.331467Z"
  },

вместо чего-то вроде:

{
    "id": 1,
    "author": {
      "id": 1,
      "username": "admin"
    },
    "text": "first post",
    "image": "url/to/image"
    "date": "2025-01-22T18:34:56.097351Z"
    "comments": {
      "author": {
      "id": 1,
      "username": "admin"
      "text": "something"
    }
 }

Как я могу это исправить? И еще вопрос, не связанный с этим, как передать url изображения как POST? -_-

Поскольку модель предоставляет комментарии в виде .comment_set, то:

class PostSerializer(serializers.ModelSerializer):
    comments = CommentSerializer(many=True, read_only=True, source='comment_set')
    # …
Вернуться на верх