whatsnext.txt 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. .. _intro-whatsnext:
  2. =================
  3. What to read next
  4. =================
  5. So you've read all the :ref:`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 still read
  8. less than 10% of the overall documentation).
  9. So what's next?
  10. Well, we've always been big fans of learning by doing. At this point you should
  11. know enough to start a project of your own and start fooling around. As you need
  12. to learn new tricks, come back to the documentation.
  13. We've put a lot of effort into making Django's documentation useful, easy to
  14. read and as complete as possible. The rest of this document explains more about
  15. how the documentation works so that you can get the most out of it.
  16. (Yes, this is documentation about documentation. Rest assured we have no plans
  17. to write a document about how to read the document about documentation.)
  18. Finding documentation
  19. =====================
  20. Django's got a *lot* of documentation -- almost 200,000 words -- so finding what
  21. you need can sometimes be tricky. A few good places to start the :ref:`search`
  22. and the :ref:`genindex`.
  23. Or you can just browse around!
  24. How the documentation is organized
  25. ==================================
  26. Django's main documentation is broken up into "chunks" designed to fill
  27. different needs:
  28. * The :ref:`introductory material <intro-index>` is designed for people new
  29. to Django -- or to web development in general. It doesn't cover anything
  30. in depth, but instead gives a high-level overview of how developing in
  31. Django "feels".
  32. * The :ref:`topic guides <topics-index>`, on the other hand, dive deep into
  33. individual parts of Django. There are complete guides to Django's
  34. :ref:`model system <topics-db-index>`, :ref:`template engine
  35. <topics-templates>`, :ref:`forms framework <topics-forms-index>`, and much
  36. more.`
  37. This is probably where you'll want to spent most of your time; if you work
  38. your way through these guides you should come out knowing pretty much
  39. everything there is to know about Django.
  40. * Web development is often broad, not deep -- problems span many domains.
  41. We've written a set of :ref:`how-to guides <howto-index>` that answer
  42. common "How do I ...?" questions. Here you'll find information about
  43. :ref:`generating PDFs with Django <howto-outputting-pdf>`, :ref:`writing
  44. custom template tags <howto-custom-template-tags>`, and more.
  45. Answers to really common questions can also be found in the :ref:`FAQ
  46. <faq-index>`.
  47. * The guides and how-to's don't cover every single class, function, and
  48. method available in Django -- that would be overwhelming when you're
  49. trying to learn. Instead, details about individual classes, functions,
  50. methods, and modules are kept in the :ref:`reference <ref-index>`. This is
  51. where you'll turn to find the details of a particular function or
  52. whathaveyou.
  53. * Finally, there's some "specialized" documentation not usually relevant to
  54. most developers. This includes the :ref:`release notes <releases-index>`,
  55. :ref:`documentation of obsolete features <obsolete-index>`,
  56. :ref:`internals documentation <internals-index>` for those who want to add
  57. code to Django itself, and a :ref:`few other things that simply don't fit
  58. elsewhere <misc-index>`.
  59. How documentation is updated
  60. ============================
  61. Just as the Django code base is developed and improved on a daily basis, our
  62. documentation is consistently improving. We improve documentation for several
  63. reasons:
  64. * To make content fixes, such as grammar/typo corrections.
  65. * To add information and/or examples to existing sections that need to be
  66. expanded.
  67. * To document Django features that aren't yet documented. (The list of
  68. such features is shrinking but exists nonetheless.)
  69. * To add documentation for new features as new features get added, or as
  70. Django APIs or behaviors change.
  71. Django's documentation is kept in the same source control system as its code. It
  72. lives in the `django/trunk/docs`_ directory of our Subversion repository. Each
  73. document online is a separate text file in the repository.
  74. .. _django/trunk/docs: http://code.djangoproject.com/browser/django/trunk/docs
  75. Where to get it
  76. ===============
  77. You can read Django documentation in several ways. They are, in order of
  78. preference:
  79. On the Web
  80. ----------
  81. The most recent version of the Django documentation lives at
  82. http://www.djangoproject.com/documentation/ . These HTML pages are generated
  83. automatically from the text files in source control. That means they reflect the
  84. "latest and greatest" in Django -- they include the very latest corrections and
  85. additions, and they discuss the latest Django features, which may only be
  86. available to users of the Django development version. (See "Differences between
  87. versions" below.)
  88. We encourage you to help improve the docs by submitting changes, corrections and
  89. suggestions in the `ticket system`_. The Django developers actively monitor the
  90. ticket system and use your feedback to improve the documentation for everybody.
  91. Note, however, that tickets should explicitly relate to the documentation,
  92. rather than asking broad tech-support questions. If you need help with your
  93. particular Django setup, try the `django-users mailing list`_ or the `#django
  94. IRC channel`_ instead.
  95. .. _ticket system: http://code.djangoproject.com/simpleticket?component=Documentation
  96. .. _django-users mailing list: http://groups.google.com/group/django-users
  97. .. _#django IRC channel: irc://irc.freenode.net/django
  98. In plain text
  99. -------------
  100. For offline reading, or just for convenience, you can read the Django
  101. documentation in plain text.
  102. If you're using an official release of Django, note that the zipped package
  103. (tarball) of the code includes a ``docs/`` directory, which contains all the
  104. documentation for that release.
  105. If you're using the development version of Django (aka the Subversion "trunk"),
  106. note that the ``docs/`` directory contains all of the documentation. You can
  107. ``svn update`` it, just as you ``svn update`` the Python code, in order to get
  108. the latest changes.
  109. You can check out the latest Django documentation from Subversion using this
  110. shell command:
  111. .. code-block:: bash
  112. $ svn co http://code.djangoproject.com/svn/django/trunk/docs/ django_docs
  113. One low-tech way of taking advantage of the text documentation is by using the
  114. Unix ``grep`` utility to search for a phrase in all of the documentation. For
  115. example, this will show you each mention of the phrase "edit_inline" in any
  116. Django document:
  117. .. code-block:: bash
  118. $ grep edit_inline /path/to/django/docs/*.txt
  119. As HTML, locally
  120. ----------------
  121. You can get a local copy of the HTML documentation following a few easy steps:
  122. * Django's documentation uses a system called Sphinx__ to convert from
  123. plain text to HTML. You'll need to install Sphinx by either downloading
  124. and installing the package from the Sphinx website, or by Python's
  125. ``easy_install``:
  126. .. code-block:: bash
  127. $ easy_install Sphinx
  128. * Then, just use the included ``Makefile`` to turn the documentation into
  129. HTML:
  130. .. code-block:: bash
  131. $ cd path/to/django/docs
  132. $ make html
  133. You'll need `GNU Make`__ installed for this.
  134. * The HTML documentation will be placed in ``docs/_build/html``.
  135. .. warning::
  136. At the time of this writing, Django's using a version of Sphinx not
  137. yet released, so you'll currently need to install Sphinx from the
  138. source. We'll fix this shortly.
  139. __ http://sphinx.pocoo.org/
  140. __ http://www.gnu.org/software/make/
  141. Differences between versions
  142. ============================
  143. As previously mentioned, the text documentation in our Subversion repository
  144. contains the "latest and greatest" changes and additions. These changes often
  145. include documentation of new features added in the Django development version
  146. -- the Subversion ("trunk") version of Django. For that reason, it's worth
  147. pointing out our policy on keeping straight the documentation for various
  148. versions of the framework.
  149. We follow this policy:
  150. * The primary documentation on djangoproject.com is an HTML version of the
  151. latest docs in Subversion. These docs always correspond to the latest
  152. official Django release, plus whatever features we've added/changed in
  153. the framework *since* the latest release.
  154. * As we add features to Django's development version, we try to update the
  155. documentation in the same Subversion commit transaction.
  156. * To distinguish feature changes/additions in the docs, we use the phrase
  157. **New in Django development version**. In practice, this means that the
  158. current documentation on djangoproject.com can be used by users of either
  159. the latest release *or* the development version.
  160. * Documentation for a particular Django release is frozen once the version
  161. has been released officially. It remains a snapshot of the docs as of the
  162. moment of the release. We will make exceptions to this rule in
  163. the case of retroactive security updates or other such retroactive
  164. changes. Once documentation is frozen, we add a note to the top of each
  165. frozen document that says "These docs are frozen for Django version XXX"
  166. and links to the current version of that document.
  167. * The `main documentation Web page`_ includes links to documentation for
  168. all previous versions.
  169. .. _main documentation Web page: http://www.djangoproject.com/documentation/