как структурировать мутацию в vuex orm graphql для соединения с бэкэндом django graphql - PullRequest
0 голосов
/ 15 марта 2019

У меня проблемы с выполнением запросов и созданием / обновлением / удалением вещей в django graphql через плагин graphql для vuex orm.

Благодаря интерфейсу, предоставленному django для выполнения запросов, я могу отлично использовать свои мутации и обращаться к любым конкретным данным или к любой их коллекции.

Я собираюсь написать пример того, как я создаю объект с именем «TipoProducto» из интерфейса django:

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:

import {Model} из '@ vuex-orm / core'; Импорт продукта из ./Product'

экспорт по умолчанию класса TipProd расширяет Model { статическая сущность = "tipProds"

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

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

Этот метод я пытаюсь использовать для создания нового объекта "ТипоПродукто":

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

где данные: tipProducto - атрибуты, взятые из формы

Не могу найти способ, чтобы vuex orm правильно структурировал запрос для создания объекта. Что я делаю не так?

Я не заставлял apollo devtools работать для отладки выхода vuex-orm. Я понятия не имею, как создается запрос.

Извините за английский и спасибо.

1 Ответ

0 голосов
/ 27 марта 2019

Структура была в порядке, я не мог видеть запрос, потому что его не было, я не смог установить соединение между Django Graphene и плагином Vuex-ORM Graphql, так как сторона API имела плохо определенные мутации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...