3.3 Replace try/except clause using get_object_or_404()
parent
95ae21ce89
commit
63493eaeae
|
@ -203,3 +203,7 @@ Here `path()` function is passed **route** and **view**; two additional option a
|
||||||
|
|
||||||
如果指定问题 ID 所对应的问题不存在,这个视图就会抛出一个 Http404 异常。
|
如果指定问题 ID 所对应的问题不存在,这个视图就会抛出一个 Http404 异常。
|
||||||
|
|
||||||
|
尝试用 get() 函数获取一个对象,如果不存在就抛出 Http404 错误也是一个普遍的流程。Django 也提供了一个快捷函数, 从而取代try/except语句
|
||||||
|
|
||||||
|
> 什么我们使用辅助函数 get_object_or_404() 而不是自己捕获 ObjectDoesNotExist 异常呢?还有,为什么模型 API 不直接抛出 ObjectDoesNotExist 而是抛出 Http404 呢?
|
||||||
|
> 因为这样做会增加模型层和视图层的耦合性。指导 Django 设计的最重要的思想之一就是要保证松散耦合。一些受控的耦合将会被包含在 django.shortcuts 模块中。
|
Loading…
Reference in New Issue