Graphene django. Получить ошибку: Строка не может представлять значение '(value, )' после попытки мутации

Я новичок в библиотеке graphene и делаю обновление мутации, как было в документации. Также я посмотрел это видео о CRUD: https://youtu.be/C-EfYVXShLE?si=uksgjJEuavU1k9GW. Я подумал, что проблема в аргументах мутации, я попытался сделать это с помощью kwargs, но результат был тот же. К сожалению, большинство руководств использовали django-rest для написания crud, но я хотел бы сделать это без других зависимостей.

Вот код:

class UpdateAddress(graphene.Mutation):
    address = graphene.Field(AddressType)
    
    class Arguments:
        address_id = graphene.ID(required=True)
        index = graphene.String()
        street = graphene.String()
        house = graphene.String()
        flat = graphene.String()
        locality = graphene.Int()
        
    @classmethod
    def mutate(cls, root, info, address_id, index=None, street=None, house=None, flat=None, locality=None):
        address = Address.objects.get(pk=address_id)
        try:
            entry = Locality.objects.get(pk=locality)
        except Locality.DoesNotExist:
            entry = None

        address.index=index,
        address.street=street,
        address.house=house,
        address.flat=flat,
        address.locality=entry

        address.save()
        return UpdateAddress(address=address)

Когда я пытаюсь обновить некоторое поле с помощью этого запроса:

mutation {
  updateAddress(
    addressId: "1",
    index: "41204"
    street: "Shevchenko",
    house: "1",
    flat: "15",
    locality: 1
  ) {
    address{
      id,
      street,
      index,
      house,
      flat,
      locality{
        id
      }
    }
  }
}

Я получаю ошибки:

  "errors": [
    {
      "message": "String cannot represent value: ('41204',)",
      "locations": [
        {
          "line": 12,
          "column": 7
        }
      ],
      "path": [
        "updateAddress",
        "address",
        "index"
      ]
    }
  ],

Каким-то образом он устанавливает все строковые значения в кортеж, и я получаю поле, подобное этому:

"id": "1",
"index": "('41204',)",
"street": "('Shevchenko',)",
"house": "('1',)",
"flat": "('1',)"

Честно говоря, я не понимаю, что я делаю не так :(

)

Уберите запятые в конце строки. Вы оборачиваете значения в кортеж синглтонов:

address.index = index  # 🖘 no comma
address.street = street  # 🖘 no comma
address.house = house  # 🖘 no comma
address.flat = flat  # 🖘 no comma
address.locality = entry  # 🖘 no comma
Вернуться на верх