首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django.shortcuts与rest_framework.generics的区别

django.shortcuts与rest_framework.generics的区别
EN

Stack Overflow用户
提问于 2021-06-16 11:38:31
回答 1查看 212关注 0票数 0

以下两句话有什么区别?

代码语言:javascript
复制
from django.shortcuts import get_object_or_404

代码语言:javascript
复制
from rest_framework.generics import get_object_or_404
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-16 11:52:06

如果传递的kwarg类型与所需类型不匹配,django.shortcuts.get_object_or_404可以引发Http404以外的错误(即TypeErrorValueErrorValidationError)。因此,rest_framework.generics.get_object_or_404只是简单地包装django.shortcuts.get_object_or_404,即使在这些情况下,Http404仍然会引发,因为DRF在内部使用该函数,并且传递的数据很容易与所需的数据类型不匹配,从而导致意外的500个错误。

从DRF的源代码[GitHub]可以看出这一点。

从django.shortcuts将get_object_or_404导入为_get_object_or_404 def get_object_or_404(queryset、*filter_args、**filter_kwargs):“”与Django的标准快捷方式相同,但如果filter_kwargs不匹配所需的类型,则确保也会引发404“。尝试:返回_get_object_or_404(queryset,*filter_args,**filter_kwargs),除了(TypeError,ValueError,ValidationError):举起Http404

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68001954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档