Я пробую пример графен-джанго с формами. Но я получаю следующую ошибку:
`graphql.error.base.GraphQLError: Невозможно вернуть ноль для не обнуляемого поля [MyMutationPayload.name].
Я пытался установить значения в выражении возврата внутри функции execute_mutate. Он не работает, если запрос не выполняет все варианты.
class MyForm(forms.Form):
name = forms.CharField(min_length=10)
age = forms.IntegerField(min_value=0)
birth_date = forms.DateField()
class MyMutation(DjangoFormMutation):
class Meta:
form_class = MyForm
@classmethod
def perform_mutate(cls, form, info):
print('ok')
return cls(errors=[], name=form.cleaned_data.get('name'), age=form.cleaned_data.get('age'), birth_date=form.cleaned_data.get('birth_date'))
class Mutations():
my_mutation = MyMutation.Field()
class Mutation(Mutations, ObjectType):
pass
ROOT_SCHEMA = Schema(mutation=Mutation)
Запрос
mutation customMutation($data: MyMutationInput!){
myMutation(input: $data){
name
age
birthDate
errors{
field
messages
}
clientMutationId
}
}
Переменные
{
"data": {
"name": "Cristhiam",
"age": "-29",
"birthDate": "1990-04-06"
}
}
Ответ
{
"errors": [
{
"message": "Cannot return null for non-nullable field MyMutationPayload.name.",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"myMutation",
"name"
]
}
],
"data": {
"myMutation": null
}
}
Результат мутации должен показать все ошибки или все значения формы.