gpt4 book ai didi

django - Graphite 烯错误消息

转载 作者:行者123 更新时间:2023-12-03 19:24:42 24 4
gpt4 key购买 nike

我想知道是否可以翻译 Graphite 烯提供的验证错误消息?例如:“未提供身份验证凭据”,如下面的代码示例所示。

{
"errors": [
{
"message": "Authentication credentials were not provided",
"locations": [
{
"line": 2,
"column": 3
}
]
}
],
"data": {
"viewer": null
}
}

最佳答案

创建自定义错误类型

import graphene
from graphene_django.utils import camelize

class ErrorType(graphene.Scalar):
@staticmethod
def serialize(errors):
if isinstance(errors, dict):
if errors.get("__all__", False):
errors["non_field_errors"] = errors.pop("__all__")
return camelize(errors)
raise Exception("`errors` should be dict!")

将其添加到您的突变中

class MyMutation(graphene.Mutation):

# add the custom error type
errors = graphene.Field(ErrorType)

form = SomeForm

@classmethod
def mutate(cls, root, info, **kwargs):
f = cls.form(kwargs)
if f.is_valid():
pass
else:
# pass the form error to your custom error type
return cls(errors=f.errors.get_json_data())

例子

django-graphql-auth 使用类似的错误类型,它的工作原理如下,例如用于注册:
mutation {
register(
email:"skywalker@email.com",
username:"skywalker",
password1: "123456",
password2:"123"
) {
success,
errors,
token,
refreshToken
}
}

应该返回:
{
"data": {
"register": {
"success": false,
"errors": {
"password2": [
{
"message": "The two password fields didn’t match.",
"code": "password_mismatch"
}
]
},
"token": null,
"refreshToken": null
}
}
}

关于django - Graphite 烯错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com