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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
|
{% extends "base.html" %}
{% load fundraising_extras release_notes static %}
{% block sectionid %}download{% endblock %}
{% block title %}Download Django{% endblock %}
{% block layout_class %}sidebar-right{% endblock %}
{% block og_title %}Download Django{% endblock %}
{% block og_image %}{% static "img/release-roadmap.svg" %}{% endblock %}
{% block og_image_alt %}Django's release roadmap{% endblock %}
{% block og_description %}The latest official version is {{ current.version }}{% if current.is_lts %} (LTS){% endif %}{% endblock %}
{% block og_image_width %}1030{% endblock %}
{% block og_image_height %}480{% endblock %}
{% block og_image_type %}image/svg+xml{% endblock %}
{% block header %}
<p>Download</p>
{% endblock header %}
{% block content %}
<h1>How to get Django</h1>
<p>Django is available open-source under the
<a href="https://github.com/django/django/blob/main/LICENSE">BSD license</a>.
We recommend using the latest version of Python.
See <a href="{% url 'document-detail' lang='en' version='dev' url='faq/install' host 'docs' %}#what-python-version-can-i-use-with-django">
the FAQ</a> for the Python versions supported by each version of Django.
Here’s how to get it:</p>
<h2>Option {% cycle '1' '2' '3' as options %}: Get the latest official version</h2>
<p>The latest official version is {{ current.version }}{% if current.is_lts %} (LTS){% endif %}. Read the
{% release_notes current.version show_version=True %}, then install it with
<a href="https://pip.pypa.io/en/latest/">pip</a>:</p>
<p>Linux / macOS:</p>
<pre class="literal-block"><code>python -m pip install Django=={{ current.version }}</code></pre>
<p>Windows:</p>
<pre class="literal-block"><code>py -m pip install Django=={{ current.version }}</code></pre>
{% if preview %}
{% with major_version=preview.version|slice:":3" %}
<h2>Option {% cycle options %}: Get the {{ preview.get_status_display }} for {{ major_version }}</h2>
<p>As part of the
<a href="https://code.djangoproject.com/wiki/Version{{ major_version }}Roadmap">
Django {{ major_version }} development process</a>, Django
{{ preview.version }} is available. This release is only for users who
want to try the new version and help identify remaining bugs before the
{{ major_version }} release. Please read the
{% release_notes preview.version show_version=True %} before using this package.
<p>Install the {{ preview.get_status_display }} with <a href="https://pip.pypa.io/">pip</a>:</p>
<pre class="literal-block"><code>pip install --pre django</code></pre>
{% endwith %}
{% endif %}
<h2>Option {% cycle options %}: Get the latest development version</h2>
<p>The latest and greatest Django version is the one that’s in our Git repository (our revision-control system). This is only for experienced users who want to try incoming changes and help identify bugs before an official release. Get it using this shell command, which requires <a href="https://git-scm.com/">Git</a>:</p>
<p class="literal-block"><code>git clone https://github.com/django/django.git</code></p>
<p>You can also download <a href="https://github.com/django/django/archive/main.tar.gz">
a gzipped tarball</a> of the development version. This archive is updated
every time we commit code.</p>
<h2>After you get it</h2>
<p>See the <a href="{% url 'document-detail' lang='en' version='stable' url='intro/install' host 'docs' %}">installation guide</a> for further instructions. Make sure you read the documentation that corresponds to the version of Django you’ve just installed.</p>
<p>And be sure to sign up to the <a href="https://forum.djangoproject.com">Django Forum</a>, where other Django users and the Django developers themselves all hang out to help each other.</p>
<h2 id="supported-versions">Supported Versions</h2>
<p><strong>Feature releases</strong> (A.B, A.B+1, etc.) will happen roughly every eight months.
These releases will contain new features, improvements to existing features, and such.</p>
<p><strong>Patch releases</strong> (A.B.C, etc.) will be issued as needed, to
fix bugs and/or security issues. These releases will be 100% compatible with
the associated feature release, unless this is impossible for security
reasons or to prevent data loss. So the answer to "should I upgrade to the
latest patch release?” will always be "yes."</p>
<p>Certain feature releases will be designated as <strong>long-term support
(LTS) releases</strong>. These releases will get security and data loss
fixes applied for a guaranteed period of time, typically three years.</p>
<p>See the <a href="{% url 'document-detail' lang='en' version='dev' url='internals/release-process' host 'docs' %}#supported-versions">
supported versions policy</a> for detailed guidelines about what fixes will be backported.</p>
<img src="{% static "img/release-roadmap.svg" %}" class='img-release' style="max-width:100%;" alt="Django release roadmap">
<hr style="margin-bottom: 20px;">
<table class='django-supported-versions'>
<tr>
<th>Release Series</th>
<th>Latest Release</th>
<th>End of mainstream support<sup><a href="#ft1">1</a></sup></th>
<th>End of extended support<sup><a href="#ft2">2</a></sup></th>
</tr>
<tr>
<td>5.2 LTS</td>
<td>{% get_latest_micro_release '5.2' %}</td>
<td>December 3, 2025</td>
<td>April 2028</td>
</tr>
<tr>
<td>6.0</td>
<td>{% get_latest_micro_release '6.0' %}</td>
<td>August 2026</td>
<td>April 2027</td>
</tr>
</table>
<h2 id="future-versions">Future Roadmap</h2>
<table class='django-supported-versions'>
<tr>
<th>Release Series</th>
<th>Release Date</th>
<th>End of mainstream support<sup><a href="#ft1">1</a></sup></th>
<th>End of extended support<sup><a href="#ft2">2</a></sup></th>
</tr>
<tr>
<td><a href="{% url 'roadmap' '6.1' %}">6.1</a></td>
<td>August 2026</td>
<td>April 2027</td>
<td>December 2027</td>
</tr>
<tr>
<td><a href="{% url 'roadmap' '6.2' %}">6.2 LTS</a></td>
<td>April 2027</td>
<td>December 2027</td>
<td>April 2030</td>
</tr>
<tr>
<td><a href="{% url 'roadmap' '7.0' %}">7.0</a></td>
<td>December 2027</td>
<td>August 2028</td>
<td>April 2029</td>
</tr>
<tr>
<td><a href="{% url 'roadmap' '7.1' %}">7.1</a></td>
<td>August 2028</td>
<td>April 2029</td>
<td>December 2029</td>
</tr>
</table>
<h2 id="unsupported-versions">Unsupported previous releases</h2>
<p>These release series no longer receive security updates or bug fixes.</p>
<table class='django-unsupported-versions'>
<tr>
<th>Release Series</th>
<th>Latest Release</th>
<th>End of mainstream support<sup><a href="#ft1">1</a></sup></th>
<th>End of extended support<sup><a href="#ft2">2</a></sup></th>
</tr>
<tr>
<td>5.1</td>
<td>{% get_latest_micro_release '5.1' %}</td>
<td>April 2, 2025</td>
<td>December 3, 2025</td>
</tr>
<tr>
<td>5.0</td>
<td>{% get_latest_micro_release '5.0' %}</td>
<td>August 7, 2024</td>
<td>April 2, 2025</td>
</tr>
<tr>
<td>4.2 LTS</td>
<td>{% get_latest_micro_release '4.2' %}</td>
<td>December 4, 2023</td>
<td>April 7, 2026</td>
</tr>
<tr>
<td>4.1</td>
<td>{% get_latest_micro_release '4.1' %}</td>
<td>April 5, 2023</td>
<td>December 1, 2023</td>
</tr>
<tr>
<td>4.0</td>
<td>{% get_latest_micro_release '4.0' %}</td>
<td>August 3, 2022</td>
<td>April 1, 2023</td>
</tr>
<tr>
<td>3.2 LTS</td>
<td>{% get_latest_micro_release '3.2' %}</td>
<td>December 7, 2021</td>
<td>April 1, 2024</td>
</tr>
<tr>
<td>3.1</td>
<td>{% get_latest_micro_release '3.1' %}</td>
<td>April 6, 2021</td>
<td>December 7, 2021</td>
</tr>
<tr>
<td>3.0</td>
<td>{% get_latest_micro_release '3.0' %}</td>
<td>August 3, 2020</td>
<td>April 6, 2021</td>
</tr>
<tr>
<td>2.2 LTS</td>
<td>{% get_latest_micro_release '2.2' %}</td>
<td>December 2, 2019</td>
<td>April 11, 2022</td>
</tr>
<tr>
<td>2.1</td>
<td>{% get_latest_micro_release '2.1' %}</td>
<td>April 1, 2019</td>
<td>December 2, 2019</td>
</tr>
<tr>
<td>2.0</td>
<td>{% get_latest_micro_release '2.0' %}</td>
<td>August 1, 2018</td>
<td>April 1, 2019</td>
</tr>
<tr>
<td>1.11 LTS <sup><a href="#ft3">3</a></sup></td>
<td>{% get_latest_micro_release '1.11' %}</td>
<td>December 2, 2017</td>
<td>April 1, 2020</td>
</tr>
<tr>
<td>1.10</td>
<td>{% get_latest_micro_release '1.10' %}</td>
<td>April 4, 2017</td>
<td>December 2, 2017</td>
</tr>
<tr>
<td>1.9</td>
<td>{% get_latest_micro_release '1.9' %}</td>
<td>August 1, 2016</td>
<td>April 4, 2017</td>
</tr>
<tr>
<td>1.8 LTS</td>
<td>{% get_latest_micro_release '1.8' %}</td>
<td>December 1, 2015</td>
<td>April 1, 2018</td>
</tr>
<tr>
<td>1.7</td>
<td>{% get_latest_micro_release '1.7' %}</td>
<td>April 1, 2015</td>
<td>December 1, 2015</td>
</tr>
<tr>
<td>1.6</td>
<td>{% get_latest_micro_release '1.6' %}</td>
<td>September 2, 2014</td>
<td>April 1, 2015</td>
</tr>
<tr>
<td>1.5</td>
<td>{% get_latest_micro_release '1.5' %}</td>
<td>November 6, 2013</td>
<td>September 2, 2014</td>
</tr>
<tr>
<td>1.4 LTS</td>
<td>{% get_latest_micro_release '1.4' %}</td>
<td>February 26, 2013</td>
<td>October 1, 2015</td>
</tr>
<tr>
<td>1.3</td>
<td>{% get_latest_micro_release '1.3' %}</td>
<td>March 23, 2012</td>
<td>February 26, 2013</td>
</tr>
</table>
<p style="max-width: 720px;">
<sup id="ft1">[1] Security fixes, data loss bugs, crashing bugs, major functionality
bugs in newly-introduced features, and regressions from older versions of Django.</sup><br>
<sup id="ft2">[2] Security fixes and data loss bugs.</sup><br>
<sup id="ft3">[3] Last version to support Python 2.7.</sup>
</p>
{% endblock content %}
{% block content-related %}
<div role="complementary">
<h2 class="visuallyhidden" id="aside-header">Additional Information</h2>
{% top_corporate_members "diamond" "platinum" header="Diamond and Platinum Members" %}
{% donation_snippet %}
<h3>For the impatient:</h3>
<ul>
<li>Latest release:
{% include "releases/_download_links.html" with release=current %}
</li>
{% if preview %}
<li>Preview release:
{% include "releases/_download_links.html" with release=preview %}
</li>
{% endif %}
</ul>
<h3>Which version is better?</h3>
<p>We improve Django almost every day and are pretty good about keeping the code stable. Thus, using the latest development code is a safe and easy way to get access to new features as they’re added. If you choose to follow the development version, keep in mind that there will occasionally be backwards-incompatible changes. You’ll want to pay close attention to the commits by watching <a href="https://github.com/django/django">Django on GitHub</a> or subscribing to <a href="https://groups.google.com/group/django-updates">django-updates</a>.</p>
<p>If you’re just looking for a stable deployment target and don’t mind waiting for the next release, you’ll want to stick with the latest official release (which will always include detailed notes on any changes you’ll need to make while upgrading).</p>
<h3>Previous releases</h3>
<ul>
<li>Django {{ previous.version }}{% if previous.is_lts %} (LTS){% endif %}:
{% include "releases/_download_links.html" with release=previous %}
</li>
{% if lts %}
<li>Django {{ lts.version }} (LTS):
{% include "releases/_download_links.html" with release=lts %}
</li>
{% endif %}
</ul>
<h3>Unsupported previous releases (no longer receive security updates or bug fixes)</h3>
<ul>
{% for release in unsupported %}
<li>Django {{ release.version }}:
{% include "releases/_download_links.html" with release=release %}
</li>
{% endfor %}
</ul>
</div>
{% endblock content-related %}
|