【发布时间】:2021-05-04 05:05:42
【问题描述】:
我正在使用 Django 构建博客站点。序列化后,具有 Django 内置 User 模型的外键字段的 Post 模型,Post 模型返回对 User 模型的整数外键引用,而我期望整个 User 对象数据而不是仅获取整数。 帖子models.py:
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User,on_delete=models.CASCADE)
body = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
serializers.py:
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
fields = ('id', 'author','body','created_at')
model = Post
views.py:
from django.shortcuts import render
from rest_framework import generics
from .models import Post
from .serializers import PostSerializer
from .permissions import IsAuthorOrReadOnly
class PostList(generics.ListCreateAPIView):
serializer_class = PostSerializer
queryset = Post.objects.all().order_by('-created_at')#sorted by created_at descending
class PostDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsAuthorOrReadOnly,)
serializer_class = PostSerializer
queryset = Post.objects.all()
我想要
{
"id": 15,
"author": {"fisrt_name":"firstname","last_name":"namelast","username":"username1","email":"example@gamil.com"},
"body": "hello world2",
"created_at": "2020-12-23T13:53:17.741635Z"
}
而不是
{
"id": 15,
"author": 21,
"body": "hello world2",
"created_at": "2020-12-23T13:53:17.741635Z"
}
【问题讨论】:
标签: python django serialization django-rest-framework foreign-keys