1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
=========================
Django shortcut functions
=========================
The package ``django.shortcuts`` collects helper functions and classes that
"span" multiple levels of MVC. In other words, these functions/classes
introduce controlled coupling for convenience's sake.
``render_to_response()``
========================
``django.shortcuts.render_to_response`` renders a given template with a given
context dictionary and returns an ``HttpResponse`` object with that rendered
text.
Required arguments
------------------
``template``
The full name of a template to use.
Optional arguments
------------------
``context``
A dictionary of values to add to the template context. By default, this
is an empty dictionary. If a value in the dictionary is callable, the
view will call it just before rendering the template.
``mimetype``
**New in Django development version:** The MIME type to use for the
resulting document. Defaults to the value of the ``DEFAULT_CONTENT_TYPE``
setting.
Example
-------
The following example renders the template ``myapp/index.html`` with the
MIME type ``application/xhtml+xml``::
from django.shortcuts import render_to_response
def my_view(request):
# View code here...
return render_to_response('myapp/index.html', {"foo": "bar"},
mimetype="application/xhtml+xml")
This example is equivalent to::
from django.http import HttpResponse
from django.template import Context, loader
def my_view(request):
# View code here...
t = loader.get_template('myapp/template.html')
c = Context({'foo': 'bar'})
r = HttpResponse(t.render(c),
mimetype="application/xhtml+xml")
.. _an HttpResponse object: ../request_response/#httpresponse-objects
``get_object_or_404``
=====================
``django.shortcuts.get_object_or_404`` calls `get()`_ on a given model
manager, but it raises ``django.http.Http404`` instead of the model's
``DoesNotExist`` exception.
Required arguments
------------------
``klass``
A ``Model``, ``Manager`` or ``QuerySet`` instance from which to get the
object.
``**kwargs``
Lookup parameters, which should be in the format accepted by ``get()`` and
``filter()``.
Example
-------
The following example gets the object with the primary key of 1 from
``MyModel``::
from django.shortcuts import get_object_or_404
def my_view(request):
my_object = get_object_or_404(MyModel, pk=1)
This example is equivalent to::
from django.http import Http404
def my_view(request):
try:
my_object = MyModel.object.get(pk=1)
except MyModel.DoesNotExist:
raise Http404
Note: As with ``get()``, an ``AssertionError`` will be raised if more than
one object is found.
.. _get(): ../db-api/#get-kwargs
``get_list_or_404``
===================
``django.shortcuts.get_list_or_404`` returns the result of `filter()`_ on a
given model manager, raising ``django.http.Http404`` if the resulting list is
empty.
Required arguments
------------------
``klass``
A ``Model``, ``Manager`` or ``QuerySet`` instance from which to get the
object.
``**kwargs``
Lookup parameters, which should be in the format accepted by ``get()`` and
``filter()``.
Example
-------
The following example gets all published objects from ``MyModel``::
from django.shortcuts import get_list_or_404
def my_view(request):
my_objects = get_list_or_404(MyModel, published=True)
This example is equivalent to::
from django.http import Http404
def my_view(request):
my_objects = MyModels.object.filter(published=True)
if not my_objects:
raise Http404
.. _filter(): ../db-api/#filter-kwargs
|