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