首页 > 解决方案 > 有没有办法链接多个模型并在单个响应中查询它们?

问题描述

嗨,我是 Django 新手,需要一点帮助。我正在为新闻网站使用 Django 和 Graphene 构建 API。我为每个新闻演员创建了多个帖子模型,以便每个新闻演员都可以在 Django 管理面板中查看其对应的模型。我面临的问题是我需要为单个查询链接或组合所有模型,以便我可以显示从所有模型创建的所有帖子。

在这个例子中,我在模式文件中导入了两个 post 模型。如果是的话,这是正确的方法吗?有没有办法将它们链接到一个查询中?

import graphene
from graphene_django import DjangoObjectType
from .models import News, Sport

class NewsType(DjangoObjectType):
    class Meta:
        model = News

class SportType(DjangoObjectType):
    class Meta:
        model = Sport

class Query(graphene.ObjectType):
    news = graphene.List(NewsType)
    sports = graphene.List(SportType)

    def resolve_news(self, info):
        return News.objects.all()

    def resolve_sports(self, info):
        return Sports.objects.all()

谢谢!

标签: pythondjangographqlgraphene-python

解决方案


如果两个模型具有相同的字段并且石墨烯允许在解析器中使用列表而不是查询集,那么您可以简单地使用

from itertools import chain
chained_results = list(chain(News.objects.all(), Sports.objects.all()))

推荐阅读