如何在vuex orm graphql中构造一个突变以与Django graphql后端连接

时间:2019-03-15 16:26:22

标签: django vue.js

我在通过vuex orm的graphql插件在Django graphql中进行查询以及创建/更新/删除内容时遇到问题。

从django提供的界面执行查询,我可以完美地使用我的突变并查询任何特定数据或它们的任何集合。

我将编写一个示例,说明如何从django接口创建名为“ TipoProducto”的对象:

mutation myMutation {
createTipoProducto(input: {nombre:"Pizza", descripcion:"foobar"}) {
    tipoProducto {nombre, descripcion}
    status
}
}

如果成功,此代码将返回对象及其属性和状态200。

架构中的Django类:

class TipoProductoNode(DjangoObjectType):
    class Meta:
        model = TipoProducto
        filter_fields = ['nombre', 'productos']
        interfaces = (relay.Node, )

class TipoProducto(graphene.ObjectType):
    nombre = graphene.String()
    descripcion = graphene.String()

class CreateTipoProducto(graphene.ClientIDMutation):

    class Input:
        nombre = graphene.String(required=True)
        descripcion = graphene.String(required=True)

    tipo_producto = graphene.Field(TipoProducto)
    status = graphene.Int()
    ok = graphene.Boolean()

    def mutate_and_get_payload(self, info, nombre, descripcion, client_id_mutation=None):
    tipo_producto = TipoProductoNode._meta.model(nombre=nombre, descripcion=descripcion)
    tipo_producto.save()
    return CreateTipoProducto(tipo_producto=tipo_producto, ok=bool(tipo_producto.id), status=200)

我在vuex orm中的模型:

从“ @ vuex-orm / core”导入{模型}; 从“ ./产品”导入产品

导出默认类TipProd扩展了模型{     静态实体=“ tipProds”

static fields () {
    return {
        id: this.increment(),
        nombre: this.attr(''),
        descripcion: this.attr(''),

        producto: this.hasMany(Product, 'tipProd_id')
        }
    }
}

这是我尝试用来创建新对象“ TipoProducto”的方法:

methods: {
         async register (tipProduct) {
            await TipProd.insert({
                data: 
                    tipProduct         
            });
            const tipProd = TipProd.query().last()
            await tipProd.$mutate({ name: 'createTipoProducto' });
}

其中数据:tipProducto是从表单获取的属性

我找不到vuex orm正确构造查询以创建对象的方式。我在做什么错了?

为了调试vuex-orm的出口,我没有让apollo devtools工作。我不知道如何创建查询。

对不起,谢谢。

1 个答案:

答案 0 :(得分:0)

结构很好,我看不到查询,因为没有查询,由于API端定义不正确的突变,导致Django Graphene和Vuex-ORM Graphql插件之间的连接失败。