Django模型序列化仅返回主键作为外键

极光

我正在用Django建立博客网站。序列化后,Post模型具有Django内置User模型的外键字段,Post模型返回带有对User模型的整数外键引用,而我希望整个User对象数据而不是仅获取整数。Post 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":"[email protected]"},
        "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"
    }
巴巴克·戈拉米拉德

您可以像这样使用户序列化器:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = [...] # put your fields instead of "..."
        depth = 1

然后像这样使用嵌套的序列化器:

class PostSerializer(serializers.ModelSerializer):
    author = UserSerializer(many=false)
    class Meta:
        fields = ('id','body','created_at')
        model = Post

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Django Rest Framework创建嵌套的序列化器,但不使用主键作为标识

来自分类Dev

Django从模型返回特定字段作为外键

来自分类Dev

Django-序列化多态模型

来自分类Dev

序列化bulkCreate()返回主键的NULL值

来自分类Dev

Django Rest Framework在POST中接收主键值,并以嵌套序列化程序的形式返回模型对象

来自分类Dev

将外键序列化为复合主键

来自分类Dev

在Django Rest Framework中,如何限制要序列化的外键对象的数量

来自分类Dev

Django Rest框架多个外键序列化

来自分类Dev

使用外键Django序列化模型

来自分类Dev

Django模型序列化器

来自分类Dev

仅序列化几个字段并返回django

来自分类Dev

序列化嵌套外键对象

来自分类Dev

如何在Django序列化器中的外键关系之上从ManyToMany关系访问字段?

来自分类Dev

在保存Django-Rest-Framework序列化程序中包含外键

来自分类Dev

Django Rest Framework:在GET响应中发送完整的外键对象,但在POST负载中仅接受外来ID,而没有两个序列化器?

来自分类Dev

Django从模型返回特定字段作为外键

来自分类Dev

Django rest-framework如何序列化对象/外键

来自分类Dev

django rest框架外键序列化器问题

来自分类Dev

Django Rest Framework,外键字段的默认序列化程序

来自分类Dev

Django DRF-将外键字段包含到序列化程序中

来自分类Dev

在Django GeoJSON序列化器中包含外键

来自分类Dev

如何在 Django 序列化程序中获取外键 ID 而不是引用模型

来自分类Dev

django rest框架外键序列化

来自分类Dev

Django rest PUT 请求序列化程序无法使用外键更新模型

来自分类Dev

如何提供正确的请求正文来序列化 Django 通用外键?

来自分类Dev

django 模型序列化器合并

来自分类Dev

Django rest 框架序列化程序外键

来自分类Dev

序列化 AbstractUser 的外键对象

来自分类Dev

Django Rest序列化程序外键是必需的错误

Related 相关文章

  1. 1

    使用Django Rest Framework创建嵌套的序列化器,但不使用主键作为标识

  2. 2

    Django从模型返回特定字段作为外键

  3. 3

    Django-序列化多态模型

  4. 4

    序列化bulkCreate()返回主键的NULL值

  5. 5

    Django Rest Framework在POST中接收主键值,并以嵌套序列化程序的形式返回模型对象

  6. 6

    将外键序列化为复合主键

  7. 7

    在Django Rest Framework中,如何限制要序列化的外键对象的数量

  8. 8

    Django Rest框架多个外键序列化

  9. 9

    使用外键Django序列化模型

  10. 10

    Django模型序列化器

  11. 11

    仅序列化几个字段并返回django

  12. 12

    序列化嵌套外键对象

  13. 13

    如何在Django序列化器中的外键关系之上从ManyToMany关系访问字段?

  14. 14

    在保存Django-Rest-Framework序列化程序中包含外键

  15. 15

    Django Rest Framework:在GET响应中发送完整的外键对象,但在POST负载中仅接受外来ID,而没有两个序列化器?

  16. 16

    Django从模型返回特定字段作为外键

  17. 17

    Django rest-framework如何序列化对象/外键

  18. 18

    django rest框架外键序列化器问题

  19. 19

    Django Rest Framework,外键字段的默认序列化程序

  20. 20

    Django DRF-将外键字段包含到序列化程序中

  21. 21

    在Django GeoJSON序列化器中包含外键

  22. 22

    如何在 Django 序列化程序中获取外键 ID 而不是引用模型

  23. 23

    django rest框架外键序列化

  24. 24

    Django rest PUT 请求序列化程序无法使用外键更新模型

  25. 25

    如何提供正确的请求正文来序列化 Django 通用外键?

  26. 26

    django 模型序列化器合并

  27. 27

    Django rest 框架序列化程序外键

  28. 28

    序列化 AbstractUser 的外键对象

  29. 29

    Django Rest序列化程序外键是必需的错误

热门标签

归档