django应用程序,用于在django rest框架后端返回一致、详细且易于解析的错误消息。

hipo-drf-exceptions的Python项目详细描述


HIPO DRF例外

hipoBuild Statuspypi

一个Django应用程序,用于在Django Rest Framework后端返回一致、详细且易于分析的错误消息。

目录

安装

使用pip、pipenv或poetry可以获得hipo异常的稳定版本:

pip install hipo-drf-exceptions

用法

处理程序

您需要设置django project settings.py文件的EXCEPTION_HANDLER设置。

REST_FRAMEWORK = {
    ..
    'EXCEPTION_HANDLER': 'hipo_drf_exceptions.handler',
}

错误响应示例

字段错误

在模型级别进行验证,并在需要时提高ValidationError

fromdjango.core.exceptionsimportValidationErrorclassInvitation(models.Model):email=models.EmailField(unique=True)defsave(self,*args,**kwargs):ifUser.objects.filter(email=self.email).exists():raiseValidationError({"email":_("Email is already registered.")})super().save(*args,**kwargs)

如果视图或序列化程序遇到ValidationError,则响应如下:

{"type":"ValidationError","detail":{"email":["Email is already registered."]},"fallback_message":"'email' has an error. Email is already registered."}

非现场错误

实现自己的错误类。

fromhipo_drf_exceptionsimportBaseAPIExceptionclassProfileCredentialError(BaseAPIException):default_detail=_('Profile credentials are not correct.')

需要时引发错误。

classAuthenticationView(GenericAPIView):defpost(self,request,*args,**kwargs):..ifnotprofile.check_password(password):raiseProfileCredentialError()..

回答如下:

{"type":"ProfileCredentialError","detail":{"non_field_errors":["Profile credentials are not correct."]},"fallback_message":"Profile credentials are not correct."}

支架

open an issue支持。

贡献

请使用Github Flow投稿。创建分支、添加提交和open a pull request

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java不可访问配置设计   在java中使用json就像在javascript中一样   java如何屏蔽Android 4.0主密钥   java为什么clickable的预期条件不执行click()?   Azure事件中心:Kafka消费者在java中不轮询任何内容   javajaxb和enum实现接口   java如何在标记下添加ProgressBar和按钮   java如何为对象实现arrayList   使用多重匹配重载java构造方法重载   java使用for循环和if语句搜索帐户   java JPanel在JPanel中添加了顶部填充   IntelliJ将Java项目/模块转换为Maven项目/模块   java如何迭代arraylist中的arraylist   自定义类的java“找不到符号”错误