使用Django REST Framework从多个模型返回结果

阿恩德鲁

我有三种模型-文章,作者和推文。我最终需要使用Django REST Framework构造一个供稿,该供稿将使用Article和Tweet模型的所有对象聚合为一个反向时间顺序供稿。

知道我会怎么做吗?我感觉到我需要创建一个新的序列化器,但是我不确定。

谢谢!

编辑:这是我到目前为止所做的。

app / serializers.py:

class TimelineSerializer(serializers.Serializer):
    pk = serializers.Field()
    title = serializers.CharField()
    author = serializers.RelatedField()
    pub_date = serializers.DateTimeField()

app / views.py:

class TimelineViewSet(viewsets.ModelViewSet):
    """
    API endpoint that lists all tweet/article objects in rev-chrono.
    """
    queryset = itertools.chain(Tweet.objects.all(), Article.objects.all())
    serializer_class = TimelineSerializer
大卫·琼斯(David Jones)-iPushPull

它看起来离我很近。我还没有亲自在DRF中使用ViewSets,但是我认为,如果将代码更改为此,您应该会有所建树(对不起-这些都未经测试):

class TimelineViewSet(viewsets.ModelViewSet):
    """
    API endpoint that lists all tweet/article objects in rev-chrono.
    """
    def list(self, request):
        queryset = list(itertools.chain(Tweet.objects.all(), Article.objects.all()))
        serializer = TimelineSerializer(queryset, many=True)
        return Response(serializer.data)

如果您不喜欢使用ViewSet,那么agenerics.ListAPIView会更简单一些:

class TimeLineList(generics.ListAPIView):
    serializer_class = TimeLineSerializer

    def get_queryset(self):
        return list(itertools.chain(Tweet.objects.all(), Article.objects.all()))

请注意,您必须将输出转换chain为列表才能使用。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django Rest Framework,使用多个模型查询

来自分类Dev

Django rest框架。返回嵌套的多个模型

来自分类Dev

Django Rest Framework中有多个模型?

来自分类Dev

Django-Rest Framework多个模型

来自分类Dev

使用Django REST Framework的Solr搜索结果

来自分类Dev

Django Rest Framework-如何限制Geolocation返回的结果?

来自分类Dev

使用Django-rest-framework获取模型的随机对象

来自分类Dev

使用Django-rest-framework获取模型的随机对象

来自分类Dev

如何使用Django REST Framework保存嵌套的Backbone模型

来自分类Dev

Django REST Framework - 使用信号扩展用户模型的问题

来自分类Dev

Django Rest Framework使用PrimaryKeyRelatedField返回嵌套对象

来自分类Dev

如何使用Django REST Framework返回生成的文件下载?

来自分类Dev

使用ParseError Django REST Framework返回无效数据

来自分类Dev

如何使用REST / Django rest框架检索过期模型的更改

来自分类Dev

如何使用Django Rest Framework删除对象

来自分类Dev

使用Django Rest Framework设置iOS Restkit

来自分类Dev

Django REST Framework-CurrentUserDefault使用

来自分类Dev

如何使用Django Rest Framework更新OneToOneField

来自分类Dev

使用Django Rest Framework自动引用嵌套

来自分类Dev

使用 django-rest-framework 的密码哈希?

来自分类Dev

Django Rest Framework的贯穿模型问题

来自分类Dev

Django rest 框架,使用 django-hvad 翻译模型

来自分类Dev

返回模型Django Rest Framework的键/属性JSON对象而不是JSON数组

来自分类Dev

在Django Rest Framework中向JSON响应添加多个模型和自定义字段

来自分类Dev

如何在序列化器/视图Django REST Framework中合并多个模型?

来自分类Dev

使用Angular将请求传递给DJANGO REST API,然后在DJANGO视图中返回这些结果

来自分类Dev

django rest模型权限

来自分类Dev

使用Django REST Framework作为Django的身份验证后端

来自分类Dev

包括Django REST Framework网址返回404

Related 相关文章

  1. 1

    Django Rest Framework,使用多个模型查询

  2. 2

    Django rest框架。返回嵌套的多个模型

  3. 3

    Django Rest Framework中有多个模型?

  4. 4

    Django-Rest Framework多个模型

  5. 5

    使用Django REST Framework的Solr搜索结果

  6. 6

    Django Rest Framework-如何限制Geolocation返回的结果?

  7. 7

    使用Django-rest-framework获取模型的随机对象

  8. 8

    使用Django-rest-framework获取模型的随机对象

  9. 9

    如何使用Django REST Framework保存嵌套的Backbone模型

  10. 10

    Django REST Framework - 使用信号扩展用户模型的问题

  11. 11

    Django Rest Framework使用PrimaryKeyRelatedField返回嵌套对象

  12. 12

    如何使用Django REST Framework返回生成的文件下载?

  13. 13

    使用ParseError Django REST Framework返回无效数据

  14. 14

    如何使用REST / Django rest框架检索过期模型的更改

  15. 15

    如何使用Django Rest Framework删除对象

  16. 16

    使用Django Rest Framework设置iOS Restkit

  17. 17

    Django REST Framework-CurrentUserDefault使用

  18. 18

    如何使用Django Rest Framework更新OneToOneField

  19. 19

    使用Django Rest Framework自动引用嵌套

  20. 20

    使用 django-rest-framework 的密码哈希?

  21. 21

    Django Rest Framework的贯穿模型问题

  22. 22

    Django rest 框架,使用 django-hvad 翻译模型

  23. 23

    返回模型Django Rest Framework的键/属性JSON对象而不是JSON数组

  24. 24

    在Django Rest Framework中向JSON响应添加多个模型和自定义字段

  25. 25

    如何在序列化器/视图Django REST Framework中合并多个模型?

  26. 26

    使用Angular将请求传递给DJANGO REST API,然后在DJANGO视图中返回这些结果

  27. 27

    django rest模型权限

  28. 28

    使用Django REST Framework作为Django的身份验证后端

  29. 29

    包括Django REST Framework网址返回404

热门标签

归档