7
So you've read all the :ref:`introductory material <intro-index>` and have
8
decided you'd like to keep using Django. We've only just scratched the surface
9
with this intro (in fact, if you've read every single word you've still read
10
less than 10% of the overall documentation).
14
Well, we've always been big fans of learning by doing. At this point you should
15
know enough to start a project of your own and start fooling around. As you need
16
to learn new tricks, come back to the documentation.
18
We've put a lot of effort into making Django's documentation useful, easy to
19
read and as complete as possible. The rest of this document explains more about
20
how the documentation works so that you can get the most out of it.
22
(Yes, this is documentation about documentation. Rest assured we have no plans
23
to write a document about how to read the document about documentation.)
28
Django's got a *lot* of documentation -- almost 200,000 words -- so finding what
29
you need can sometimes be tricky. A few good places to start the :ref:`search`
30
and the :ref:`genindex`.
32
Or you can just browse around!
34
How the documentation is organized
35
==================================
37
Django's main documentation is broken up into "chunks" designed to fill
40
* The :ref:`introductory material <intro-index>` is designed for people new
41
to Django -- or to web development in general. It doesn't cover anything
42
in depth, but instead gives a high-level overview of how developing in
45
* The :ref:`topic guides <topics-index>`, on the other hand, dive deep into
46
individual parts of Django. There are complete guides to Django's
47
:ref:`model system <topics-db-index>`, :ref:`template engine
48
<topics-templates>`, :ref:`forms framework <topics-forms-index>`, and much
51
This is probably where you'll want to spent most of your time; if you work
52
your way through these guides you should come out knowing pretty much
53
everything there is to know about Django.
55
* Web development is often broad, not deep -- problems span many domains.
56
We've written a set of :ref:`how-to guides <howto-index>` that answer
57
common "How do I ...?" questions. Here you'll find information about
58
:ref:`generating PDFs with Django <howto-outputting-pdf>`, :ref:`writing
59
custom template tags <howto-custom-template-tags>`, and more.
61
Answers to really common questions can also be found in the :ref:`FAQ
64
* The guides and how-to's don't cover every single class, function, and
65
method available in Django -- that would be overwhelming when you're
66
trying to learn. Instead, details about individual classes, functions,
67
methods, and modules are kept in the :ref:`reference <ref-index>`. This is
68
where you'll turn to find the details of a particular function or
71
* Finally, there's some "specialized" documentation not usually relevant to
72
most developers. This includes the :ref:`release notes <releases-index>`,
73
:ref:`documentation of obsolete features <obsolete-index>`,
74
:ref:`internals documentation <internals-index>` for those who want to add
75
code to Django itself, and a :ref:`few other things that simply don't fit
76
elsewhere <misc-index>`.
79
How documentation is updated
80
============================
82
Just as the Django code base is developed and improved on a daily basis, our
83
documentation is consistently improving. We improve documentation for several
86
* To make content fixes, such as grammar/typo corrections.
88
* To add information and/or examples to existing sections that need to be
91
* To document Django features that aren't yet documented. (The list of
92
such features is shrinking but exists nonetheless.)
94
* To add documentation for new features as new features get added, or as
95
Django APIs or behaviors change.
97
Django's documentation is kept in the same source control system as its code. It
98
lives in the `django/trunk/docs`_ directory of our Subversion repository. Each
99
document online is a separate text file in the repository.
101
.. _django/trunk/docs: http://code.djangoproject.com/browser/django/trunk/docs
106
You can read Django documentation in several ways. They are, in order of
112
The most recent version of the Django documentation lives at
113
http://docs.djangoproject.com/en/dev/. These HTML pages are generated
114
automatically from the text files in source control. That means they reflect the
115
"latest and greatest" in Django -- they include the very latest corrections and
116
additions, and they discuss the latest Django features, which may only be
117
available to users of the Django development version. (See "Differences between
120
We encourage you to help improve the docs by submitting changes, corrections and
121
suggestions in the `ticket system`_. The Django developers actively monitor the
122
ticket system and use your feedback to improve the documentation for everybody.
124
Note, however, that tickets should explicitly relate to the documentation,
125
rather than asking broad tech-support questions. If you need help with your
126
particular Django setup, try the `django-users mailing list`_ or the `#django
127
IRC channel`_ instead.
129
.. _ticket system: http://code.djangoproject.com/simpleticket?component=Documentation
130
.. _django-users mailing list: http://groups.google.com/group/django-users
131
.. _#django IRC channel: irc://irc.freenode.net/django
136
For offline reading, or just for convenience, you can read the Django
137
documentation in plain text.
139
If you're using an official release of Django, note that the zipped package
140
(tarball) of the code includes a ``docs/`` directory, which contains all the
141
documentation for that release.
143
If you're using the development version of Django (aka the Subversion "trunk"),
144
note that the ``docs/`` directory contains all of the documentation. You can
145
``svn update`` it, just as you ``svn update`` the Python code, in order to get
148
You can check out the latest Django documentation from Subversion using this
153
$ svn co http://code.djangoproject.com/svn/django/trunk/docs/ django_docs
155
One low-tech way of taking advantage of the text documentation is by using the
156
Unix ``grep`` utility to search for a phrase in all of the documentation. For
157
example, this will show you each mention of the phrase "max_length" in any
162
$ grep -r max_length /path/to/django/docs/
167
You can get a local copy of the HTML documentation following a few easy steps:
169
* Django's documentation uses a system called Sphinx__ to convert from
170
plain text to HTML. You'll need to install Sphinx by either downloading
171
and installing the package from the Sphinx website, or by Python's
176
$ easy_install Sphinx
178
* Then, just use the included ``Makefile`` to turn the documentation into
183
$ cd path/to/django/docs
186
You'll need `GNU Make`__ installed for this.
188
* The HTML documentation will be placed in ``docs/_build/html``.
192
At the time of this writing, Django's using a version of Sphinx not
193
yet released, so you'll currently need to install Sphinx from the
194
source. We'll fix this shortly.
196
__ http://sphinx.pocoo.org/
197
__ http://www.gnu.org/software/make/
199
Differences between versions
200
============================
202
As previously mentioned, the text documentation in our Subversion repository
203
contains the "latest and greatest" changes and additions. These changes often
204
include documentation of new features added in the Django development version
205
-- the Subversion ("trunk") version of Django. For that reason, it's worth
206
pointing out our policy on keeping straight the documentation for various
207
versions of the framework.
209
We follow this policy:
211
* The primary documentation on djangoproject.com is an HTML version of the
212
latest docs in Subversion. These docs always correspond to the latest
213
official Django release, plus whatever features we've added/changed in
214
the framework *since* the latest release.
216
* As we add features to Django's development version, we try to update the
217
documentation in the same Subversion commit transaction.
219
* To distinguish feature changes/additions in the docs, we use the phrase:
220
"New in version X.Y", being X.Y the next release version (hence, the one
223
* Documentation for a particular Django release is frozen once the version
224
has been released officially. It remains a snapshot of the docs as of the
225
moment of the release. We will make exceptions to this rule in
226
the case of retroactive security updates or other such retroactive
227
changes. Once documentation is frozen, we add a note to the top of each
228
frozen document that says "These docs are frozen for Django version XXX"
229
and links to the current version of that document.
231
* The `main documentation Web page`_ includes links to documentation for
232
all previous versions.
234
.. _main documentation Web page: http://docs.djangoproject.com/en/dev/