【发布时间】:2021-12-17 21:43:41
【问题描述】:
我创建了一个突变来处理文件中的数据。这些文件由一个名为 IncomingFile 的 django 模型表示。
最初我一次只使用他的 ID 获取一个 IncomingFile,但现在我认为获取 IncomingFile 的 ID 列表并处理它们可能会更好。
所以我以这种方式纠正我的突变:
class FileMutation:
process_file = GpexeCustomField(
Boolean,
incomingfile_list_id=List(ID, required=True)
)
def resolve_process_file(self, info, incomingfile_list_id, **kwargs):
try:
ifile_list = []
if not incomingfile_list_id:
return False
for id in incomingfile_list_id:
ifile_list.append(IncomingFileType.objects(info, "write").get(id=id))
for incomingfile in ifile_list:
incomingfile.process()
except Exception as e:
logger.error(f"Error on request to process incoming files from {e}")
return False
return True
(GpexeCustomField 只是一个帮助调用正确解析方法的类)
对象类型:
class IncomingFileType(DjangoObjectType):
class Meta:
model = IncomingFile
fields = "__all__"
效果很好!但现在我想返回 ifile_list(它包含已处理的 IncomingFile 对象)并在 graphql 控制台中显示它们的 ID。可能吗?如果是,如何?我应该更正或添加什么?
我不想要解决方案,而只想要一些让我有可能独自完成的概念。
提前致谢,抱歉英语不好!
【问题讨论】:
-
你的变异类中有变异方法吗?您可能想要更新您的变异类返回的内容。
-
好的,非常感谢!因此,如果我有一个名为“IncomingObjectType”的 ObjectType 类并且我希望我的变异返回一个 IncomingFileObjects 列表,我应该使用 List(IncomingFileObject) 更改布尔值。
-
是的。例如查看docs.graphene-python.org/projects/django/en/latest/mutations,它返回一个 QuestionMutation 对象。
-
非常感谢! :)
标签: python graphene-python graphene-django