Django 石墨烯错误消息
我想知道是否有可能翻译石墨烯提供的验证错误消息?例如:“未提供身份验证凭据”,如下面的代码示例所示Django 石墨烯错误消息,django,graphql,graphene-django,Django,Graphql,Graphene Django,我想知道是否有可能翻译石墨烯提供的验证错误消息?例如:“未提供身份验证凭据”,如下面的代码示例所示 { "errors": [ { "message": "Authentication credentials were not provided", "locations": [ { "line": 2, "column": 3 } ] } ], "data":
{
"errors": [
{
"message": "Authentication credentials were not provided",
"locations": [
{
"line": 2,
"column": 3
}
]
}
],
"data": {
"viewer": null
}
}
创建自定义错误类型
导入石墨烯
从graphene_django.utils导入camelize
类错误类型(graphene.Scalar):
@静力学方法
def序列化(错误):
如果存在(错误,dict):
如果出现错误。获取(“\uuuuu all\uuuuuuu”,False):
errors[“non_field_errors”]=errors.pop(“\uu all\uuuuuuuuuuuuuuuuuuu”)
返回camelize(错误)
引发异常('errors'应该是dict!')
将其添加到您的应用程序中
类My突变(石墨烯突变):
#添加自定义错误类型
错误=石墨烯字段(ErrorType)
形式
@类方法
def变异(cls、根目录、信息、**kwargs):
f=cls.表格(kwargs)
如果f.是有效的():
通过
其他:
#将表单错误传递给自定义错误类型
返回cls(errors=f.errors.get_json_data())
例子
使用类似的错误类型,其工作原理如下,例如用于注册:
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
}
}
}
贝姆·文多·克劳迪奥!这是一个很好的解决方案。佩德罗本:你能添加
SomeForm
吗?例如,我真的不知道如何实现你需要理解的cls