在突变中是否可以执行查询?

时间:2017-07-24 16:43:56

标签: python graphql graphene-python

我写了一个在前端触发的变异,我为django构建了一个自定义电子邮件系统,它使用gql查询所需的确切上下文。在突变中,可以触发电子邮件。但是,当发生这种情况时,突变和查询都会停止。到目前为止,我的解决方案是将电子邮件触发器推送到一项似乎有效的任务,但并不理想。关于如何在不需要任务的情况下使其工作的任何想法?

# Super simplified example

class MyEmail(CustomEmailClass):
    def __init__(self, thing):
        self.thing = thing

    @cached_property
    def context(self):
        return schema.execute_query(query, variable_values={
            'thingId': self.thing.id,
        )

    def send(self):
        # get templates and do other things
        # ...
        EmailMultiAlternatives(
            body=plaintext_template.render(self.context),
            **kwargs).send()

class MyMutation(relay.ClientIdMutation):
    class Input:
        id = ID()

    @classmethod
    def mutate_and_get_payload(cls, input, context, info):
        # do things here
        # ...
        MyEmail(thing=instance).send()
        return MyMutation(instance=instance)

0 个答案:

没有答案