1. =================
    
  2. What to read next
    
  3. =================
    
  4. 
    
  5. So you've read all the :doc:`introductory material </intro/index>` and have
    
  6. decided you'd like to keep using Django. We've only just scratched the surface
    
  7. with this intro (in fact, if you've read every single word, you've read about
    
  8. 5% of the overall documentation).
    
  9. 
    
  10. So what's next?
    
  11. 
    
  12. Well, we've always been big fans of learning by doing. At this point you should
    
  13. know enough to start a project of your own and start fooling around. As you need
    
  14. to learn new tricks, come back to the documentation.
    
  15. 
    
  16. We've put a lot of effort into making Django's documentation useful, clear and
    
  17. as complete as possible. The rest of this document explains more about how the
    
  18. documentation works so that you can get the most out of it.
    
  19. 
    
  20. (Yes, this is documentation about documentation. Rest assured we have no plans
    
  21. to write a document about how to read the document about documentation.)
    
  22. 
    
  23. Finding documentation
    
  24. =====================
    
  25. 
    
  26. Django's got a *lot* of documentation -- almost 450,000 words and counting --
    
  27. so finding what you need can sometimes be tricky. A good place to start
    
  28. is the :ref:`genindex`. We also recommend using the builtin search feature.
    
  29. 
    
  30. Or you can just browse around!
    
  31. 
    
  32. How the documentation is organized
    
  33. ==================================
    
  34. 
    
  35. Django's main documentation is broken up into "chunks" designed to fill
    
  36. different needs:
    
  37. 
    
  38. * The :doc:`introductory material </intro/index>` is designed for people new
    
  39.   to Django -- or to web development in general. It doesn't cover anything
    
  40.   in depth, but instead gives a high-level overview of how developing in
    
  41.   Django "feels".
    
  42. 
    
  43. * The :doc:`topic guides </topics/index>`, on the other hand, dive deep into
    
  44.   individual parts of Django. There are complete guides to Django's
    
  45.   :doc:`model system </topics/db/index>`, :doc:`template engine
    
  46.   </topics/templates>`, :doc:`forms framework </topics/forms/index>`, and much
    
  47.   more.
    
  48. 
    
  49.   This is probably where you'll want to spend most of your time; if you work
    
  50.   your way through these guides you should come out knowing pretty much
    
  51.   everything there is to know about Django.
    
  52. 
    
  53. * Web development is often broad, not deep -- problems span many domains.
    
  54.   We've written a set of :doc:`how-to guides </howto/index>` that answer
    
  55.   common "How do I ...?" questions. Here you'll find information about
    
  56.   :doc:`generating PDFs with Django </howto/outputting-pdf>`, :doc:`writing
    
  57.   custom template tags </howto/custom-template-tags>`, and more.
    
  58. 
    
  59.   Answers to really common questions can also be found in the :doc:`FAQ
    
  60.   </faq/index>`.
    
  61. 
    
  62. * The guides and how-to's don't cover every single class, function, and
    
  63.   method available in Django -- that would be overwhelming when you're
    
  64.   trying to learn. Instead, details about individual classes, functions,
    
  65.   methods, and modules are kept in the :doc:`reference </ref/index>`. This is
    
  66.   where you'll turn to find the details of a particular function or
    
  67.   whatever you need.
    
  68. 
    
  69. * If you are interested in deploying a project for public use, our docs have
    
  70.   :doc:`several guides</howto/deployment/index>` for various deployment
    
  71.   setups as well as a :doc:`deployment checklist</howto/deployment/checklist>`
    
  72.   for some things you'll need to think about.
    
  73. 
    
  74. * Finally, there's some "specialized" documentation not usually relevant to
    
  75.   most developers. This includes the :doc:`release notes </releases/index>` and
    
  76.   :doc:`internals documentation </internals/index>` for those who want to add
    
  77.   code to Django itself, and a :doc:`few other things that don't fit elsewhere
    
  78.   </misc/index>`.
    
  79. 
    
  80. 
    
  81. How documentation is updated
    
  82. ============================
    
  83. 
    
  84. Just as the Django code base is developed and improved on a daily basis, our
    
  85. documentation is consistently improving. We improve documentation for several
    
  86. reasons:
    
  87. 
    
  88. * To make content fixes, such as grammar/typo corrections.
    
  89. 
    
  90. * To add information and/or examples to existing sections that need to be
    
  91.   expanded.
    
  92. 
    
  93. * To document Django features that aren't yet documented. (The list of
    
  94.   such features is shrinking but exists nonetheless.)
    
  95. 
    
  96. * To add documentation for new features as new features get added, or as
    
  97.   Django APIs or behaviors change.
    
  98. 
    
  99. Django's documentation is kept in the same source control system as its code. It
    
  100. lives in the :source:`docs` directory of our Git repository. Each document
    
  101. online is a separate text file in the repository.
    
  102. 
    
  103. Where to get it
    
  104. ===============
    
  105. 
    
  106. You can read Django documentation in several ways. They are, in order of
    
  107. preference:
    
  108. 
    
  109. On the web
    
  110. ----------
    
  111. 
    
  112. The most recent version of the Django documentation lives at
    
  113. https://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
    
  118. :ref:`differences-between-doc-versions` below.)
    
  119. 
    
  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.
    
  123. 
    
  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.
    
  128. 
    
  129. .. _ticket system: https://code.djangoproject.com/
    
  130. .. _#django IRC channel: https://web.libera.chat/#django
    
  131. 
    
  132. In plain text
    
  133. -------------
    
  134. 
    
  135. For offline reading, or just for convenience, you can read the Django
    
  136. documentation in plain text.
    
  137. 
    
  138. If you're using an official release of Django, the zipped package (tarball) of
    
  139. the code includes a ``docs/`` directory, which contains all the documentation
    
  140. for that release.
    
  141. 
    
  142. If you're using the development version of Django (aka the main branch), the
    
  143. ``docs/`` directory contains all of the documentation. You can update your
    
  144. Git checkout to get the latest changes.
    
  145. 
    
  146. One low-tech way of taking advantage of the text documentation is by using the
    
  147. Unix ``grep`` utility to search for a phrase in all of the documentation. For
    
  148. example, this will show you each mention of the phrase "max_length" in any
    
  149. Django document:
    
  150. 
    
  151. .. console::
    
  152. 
    
  153.     $ grep -r max_length /path/to/django/docs/
    
  154. 
    
  155. As HTML, locally
    
  156. ----------------
    
  157. 
    
  158. You can get a local copy of the HTML documentation following a few steps:
    
  159. 
    
  160. * Django's documentation uses a system called Sphinx__ to convert from
    
  161.   plain text to HTML. You'll need to install Sphinx by either downloading
    
  162.   and installing the package from the Sphinx website, or with ``pip``:
    
  163. 
    
  164.   .. console::
    
  165. 
    
  166.         $ python -m pip install Sphinx
    
  167. 
    
  168. * Then, use the included ``Makefile`` to turn the documentation into HTML:
    
  169. 
    
  170.   .. code-block:: console
    
  171. 
    
  172.         $ cd path/to/django/docs
    
  173.         $ make html
    
  174. 
    
  175.   You'll need `GNU Make`__ installed for this.
    
  176. 
    
  177.   If you're on Windows you can alternatively use the included batch file:
    
  178. 
    
  179.   .. code-block:: bat
    
  180. 
    
  181.         cd path\to\django\docs
    
  182.         make.bat html
    
  183. 
    
  184. * The HTML documentation will be placed in ``docs/_build/html``.
    
  185. 
    
  186. __ https://www.sphinx-doc.org/
    
  187. __ https://www.gnu.org/software/make/
    
  188. 
    
  189. .. _differences-between-doc-versions:
    
  190. 
    
  191. Differences between versions
    
  192. ============================
    
  193. 
    
  194. The text documentation in the main branch of the Git repository contains the
    
  195. "latest and greatest" changes and additions. These changes include
    
  196. documentation of new features targeted for Django's next :term:`feature
    
  197. release <Feature release>`. For that reason, it's worth pointing out our policy
    
  198. to highlight recent changes and additions to Django.
    
  199. 
    
  200. We follow this policy:
    
  201. 
    
  202. * The development documentation at https://docs.djangoproject.com/en/dev/ is
    
  203.   from the main branch. These docs correspond to the latest feature release,
    
  204.   plus whatever features have been added/changed in the framework since then.
    
  205. 
    
  206. * As we add features to Django's development version, we update the
    
  207.   documentation in the same Git commit transaction.
    
  208. 
    
  209. * To distinguish feature changes/additions in the docs, we use the phrase:
    
  210.   "New in Django Development version" for the version of Django that hasn't
    
  211.   been released yet, or "New in version X.Y" for released versions.
    
  212. 
    
  213. * Documentation fixes and improvements may be backported to the last release
    
  214.   branch, at the discretion of the merger, however, once a version of Django is
    
  215.   :ref:`no longer supported<supported-versions-policy>`, that version of the
    
  216.   docs won't get any further updates.
    
  217. 
    
  218. * The `main documentation web page`_ includes links to documentation for
    
  219.   previous versions. Be sure you are using the version of the docs
    
  220.   corresponding to the version of Django you are using!
    
  221. 
    
  222. .. _main documentation web page: https://docs.djangoproject.com/en/dev/