Django rest 框架在序列化程序中检索列表

赛腾

请考虑以下示例。我有两个模型,一个Author和一个Article它们看起来像这样:

# author.py

from django.db import models


class Author(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

    def __str__(self):
        return self.first_name
# article.py

from django.db import models
from authors.models import Author


class Article(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    text = models.TextField()

    def __str__(self):
        return self.text

我的序列化程序看起来像这样:

from rest_framework import serializers
from .models import Article
from authors.serializers import AuthorSerializer


class ArticleSerializer(serializers.ModelSerializer):
    author = AuthorSerializer()

    class Meta:
        model = Article
        fields = '__all__'
from rest_framework import serializers
from .models import Author

class AuthorSerializer(serializers.ModelSerializer):
    class Meta:
        model = Author
        fields = '__all__'

现在,如果我想从我的 API 中获取文章,那很简单。获取文章附上作者,这一切都很好——但我如何得到相反的结果?例如,如果我想让作者拥有他们撰写的最新 5 篇文章?所以预期的输出将是这样的:

{
    "first_name": "Sethen",
    "last_name": "Maleno",
    "articles": [
      {
          "text": "some article"
      },
      {
          "text": "another article"
      }
    ]
}
亚历克斯·K
class ArticleWithoutAuthorSerializer(ArticleSerializer):
    # Prevent author field serialization and endless nesting
    author = None

class AuthorSerializer(ModelSerializer):
    articles = SerializerMethodField()

    def get_articles(self, author):
        # Five recently posted articles
        articles = author.article_set.order_by('-published')[:5]
        return ArticleWithoutAuthorSerializer(articles, many=True).data

    class Meta:
        model = Author

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django rest框架在同一列表中的不同序列化器

来自分类Dev

Django Rest框架在外键上的序列化

来自分类Dev

序列化程序,Django rest框架中的权限检查,

来自分类Dev

Django REST框架序列化程序中的完整URL

来自分类Dev

序列化程序,Django rest框架中的权限检查,

来自分类Dev

Django REST框架:不同序列化对象的列表?

来自分类Dev

如何使注释序列化程序与Django rest框架中的后期序列化程序一起工作?

来自分类Dev

Django REST 框架序列化程序输出

来自分类Dev

Django rest 框架序列化程序外键

来自分类Dev

如何在序列化数据中附加对象列表?在 Django Rest 框架中

来自分类Dev

django rest 框架,不可序列化

来自分类Dev

在Django Rest框架中修改序列化器的输出

来自分类Dev

在Django Rest框架中序列化查询集

来自分类Dev

Django REST框架中的TypeError教程1:序列化

来自分类Dev

Django Rest框架中的空序列化响应

来自分类Dev

在Django REST框架序列化程序中动态排除或包含字段

来自分类Dev

如何在 django rest 框架序列化程序中访问初始数据

来自分类Dev

如何在 django rest 框架中为嵌套序列化程序正确创建 POST 方法

来自分类Dev

将变量(非模型字段)传递给 django rest 框架中的序列化程序

来自分类Dev

Django rest 框架序列化程序:从 POST 请求中获取源代码

来自分类Dev

Django Rest Framework序列化程序中的循环依赖

来自分类Dev

在Django Rest框架中序列化/反序列化外键

来自分类Dev

Django REST框架序列化程序中GET和POST的不对称性质

来自分类Dev

不能在序列化程序 django rest 框架中为每个对象使用不同的字段

来自分类Dev

模型字段(在django中)和序列化器字段(在django rest框架中)之间的区别

来自分类Dev

django rest框架:通过序列化程序validate()方法设置字段级错误

来自分类Dev

Django REST框架:序列化程序上的Unique_together验证

来自分类Dev

使用Django REST框架,如何避免在序列化程序和视图中获取对象?

来自分类Dev

Django REST框架:动态序列化程序关系字段-POST pk但获取超链接

Related 相关文章

  1. 1

    Django rest框架在同一列表中的不同序列化器

  2. 2

    Django Rest框架在外键上的序列化

  3. 3

    序列化程序,Django rest框架中的权限检查,

  4. 4

    Django REST框架序列化程序中的完整URL

  5. 5

    序列化程序,Django rest框架中的权限检查,

  6. 6

    Django REST框架:不同序列化对象的列表?

  7. 7

    如何使注释序列化程序与Django rest框架中的后期序列化程序一起工作?

  8. 8

    Django REST 框架序列化程序输出

  9. 9

    Django rest 框架序列化程序外键

  10. 10

    如何在序列化数据中附加对象列表?在 Django Rest 框架中

  11. 11

    django rest 框架,不可序列化

  12. 12

    在Django Rest框架中修改序列化器的输出

  13. 13

    在Django Rest框架中序列化查询集

  14. 14

    Django REST框架中的TypeError教程1:序列化

  15. 15

    Django Rest框架中的空序列化响应

  16. 16

    在Django REST框架序列化程序中动态排除或包含字段

  17. 17

    如何在 django rest 框架序列化程序中访问初始数据

  18. 18

    如何在 django rest 框架中为嵌套序列化程序正确创建 POST 方法

  19. 19

    将变量(非模型字段)传递给 django rest 框架中的序列化程序

  20. 20

    Django rest 框架序列化程序:从 POST 请求中获取源代码

  21. 21

    Django Rest Framework序列化程序中的循环依赖

  22. 22

    在Django Rest框架中序列化/反序列化外键

  23. 23

    Django REST框架序列化程序中GET和POST的不对称性质

  24. 24

    不能在序列化程序 django rest 框架中为每个对象使用不同的字段

  25. 25

    模型字段(在django中)和序列化器字段(在django rest框架中)之间的区别

  26. 26

    django rest框架:通过序列化程序validate()方法设置字段级错误

  27. 27

    Django REST框架:序列化程序上的Unique_together验证

  28. 28

    使用Django REST框架,如何避免在序列化程序和视图中获取对象?

  29. 29

    Django REST框架:动态序列化程序关系字段-POST pk但获取超链接

热门标签

归档