summaryrefslogtreecommitdiff
path: root/django/shortcuts/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/shortcuts/__init__.py')
-rw-r--r--django/shortcuts/__init__.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/django/shortcuts/__init__.py b/django/shortcuts/__init__.py
new file mode 100644
index 0000000000..b42ede0339
--- /dev/null
+++ b/django/shortcuts/__init__.py
@@ -0,0 +1,23 @@
+# This module collects helper functions and classes that "span" multiple levels
+# of MVC. In other words, these functions/classes introduce controlled coupling
+# for convenience's sake.
+
+from django.template import loader
+from django.http import HttpResponse, Http404
+
+
+def render_to_response(*args, **kwargs):
+ return HttpResponse(loader.render_to_string(*args, **kwargs))
+load_and_render = render_to_response # For backwards compatibility.
+
+def get_object_or_404(klass, **kwargs):
+ try:
+ return klass._default_manager.get(**kwargs)
+ except klass.DoesNotExist:
+ raise Http404
+
+def get_list_or_404(klass, **kwargs):
+ obj_list = list(klass._default_manager.filter(**kwargs))
+ if not obj_list:
+ raise Http404
+ return obj_list