python - 有没有办法链接多个模型并在单个响应中查询它们?
问题描述
嗨,我是 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()
谢谢!
解决方案
如果两个模型具有相同的字段并且石墨烯允许在解析器中使用列表而不是查询集,那么您可以简单地使用链:
from itertools import chain
chained_results = list(chain(News.objects.all(), Sports.objects.all()))
推荐阅读
- php - How sort multidimensional array with first column (name of key) not costant and to parity of it for value?
- c# - 将 C# 不安全代码转换为其 VB.NET 等效代码
- python - 在字典中查找从根到叶的所有路径
- powershell - PS1 脚本在静默运行时中途停止执行
- javascript - 当我尝试将 javascript 文件链接到 html 时,为什么浏览器显示找不到文件错误?
- excel - 基于在单元格值范围内搜索基于另一个工作表范围的部分文本的突出显示
- mdriven - MDriven 中的模拟?
- c++ - Vector[]操作(只读)线程安全
- git - 如何创建不与 GIT 耦合的可重用 Azure devops Yaml 模板
- python - Python GET 请求不起作用,但相同的 ajax 请求起作用。它有什么问题?