Ошибка при передаче поля json в мутации graphql с django

нижеприведенный код предназначен для обновления поля "personalize" в модели пользователя (django), которое является json-полем, не уверен, как передать его в качестве аргумента для мутации

class AddPersonalization(graphene.Mutation):
    ok = graphene.Boolean()

    class Arguments():
        user_id = graphene.Int(required=True)
        personalize = graphene.JSONString(required=True)

    def mutate(self, user_id, personalize):
        try:
            get_user_model().objects.filter(id=user_id).update(personalize=personalize)
        except get_user_model().DoesNotExist:
            raise Exception("User doesn't exist")
        return AddPersonalization(ok=True) 

graphql запрос

mutation{
  addPersonalization(userId :285 ,personalize:["sample1", "sample2"]  )
  {
    ok
  }
}

ответ на ошибку :

{
  "errors": [
    {
      "message": "Argument \"personalize\" has invalid value [\"sample1\", \"sample2\"].\nExpected type \"JSONString\", found [\"sample1\", \"sample2\"].",
      "locations": [
        {
          "line": 2,
          "column": 47
        }
      ]
    }
  ]
} 

Это потому, что вы отправляете массив строк, а не объект JSONString.

JSON.stringify(Object that you are sending).
Вернуться на верх