我在通过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工作。我不知道如何创建查询。
对不起,谢谢。
答案 0 :(得分:0)
结构很好,我看不到查询,因为没有查询,由于API端定义不正确的突变,导致Django Graphene和Vuex-ORM Graphql插件之间的连接失败。