四个新的快捷键
我们添加了四个新的快捷键,可以帮助你在 Django 应用中使用更少的代码。每个快捷键都旨在用一行代码表达一种常见的习惯用法。
第一个习惯用法是这样的
from django.core import template, template_loader from django.utils.httpwrappers import HttpResponse def foo_view(request): t = template_loader.get_template('foo/foo_detail') c = template.Context({'foo': 'bar'}) return HttpResponse(t.render(c))
如果你是一位 Django 开发者,你可能用过与此非常相似的东西:加载一个模板,用上下文填充它,并返回一个HttpResponse以及渲染后的模板。因为这太常见了,所以我们添加了一个快捷键render_to_response()。以下是重写的相同代码
from django.core.extensions import render_to_response def foo_view(request): return render_to_response('foo/foo_detail', {'foo': 'bar'})
我们还添加了render_to_string(),它与render_to_response()的功能相同,但返回的是字符串而不是HttpResponse.
。这是一个在 Django 代码中非常常见的第二个习惯用法
from django.core.exceptions import Http404 from django.models.bar import foos try: f = foos.get_object(some_field__exact=some_lookup) except foos.FooDoesNotExist: raise Http404
我们引入了get_object_or_404()将这个常见的情况简化为一行代码。以下是重写的相同代码
from django.core.extensions import get_object_or_404 from django.models.bar import foos f = get_object_or_404(foos, some_field__exact=some_lookup)
还有一个get_list_or_404(),它的工作方式相同,但使用get_list()而不是get_object().
我们已经更新了文档,在示例中使用此新方法。
最后,在这两个示例中,旧代码(冗长地编写内容)仍然有效。
返回顶部