mirror of
https://github.com/django/django.git
synced 2024-12-23 09:36:06 +00:00
604162604b
The first part of django.contrib.postgres, including model and two form fields for arrays of other data types. This commit is formed of the following work: Add shell of postgres app and test handling. First draft of array fields. Use recursive deconstruction. Stop creating classes at lookup time. Add validation and size parameter. Add contained_by lookup. Add SimpleArrayField for forms. Add SplitArrayField (mainly for admin). Fix prepare_value for SimpleArrayField. Stop using MultiValueField and MultiWidget. They don't play nice with flexible sizes. Add basics of admin integration. Missing: - Tests - Fully working js Add reference document for django.contrib.postgres.fields.ArrayField. Various performance and style tweaks. Fix internal docs link, formalise code snippets. Remove the admin code for now. It needs a better way of handing JS widgets in the admin as a whole before it is easy to write. In particular there are serious issues involving DateTimePicker when used in an array. Add a test for nested array fields with different delimiters. This will be a documented pattern so having a test for it is useful. Add docs for SimpleArrayField. Add docs for SplitArrayField. Remove admin related code for now. definition -> description Fix typo. Py3 errors. Avoid using regexes where they're not needed. Allow passing tuples by the programmer. Add some more tests for multidimensional arrays. Also fix slicing as much as it can be fixed. Simplify SplitArrayWidget's data loading. If we aren't including the variable size one, we don't need to search like this.
330 lines
11 KiB
Plaintext
330 lines
11 KiB
Plaintext
|
|
.. _index:
|
|
|
|
====================
|
|
Django documentation
|
|
====================
|
|
|
|
.. rubric:: Everything you need to know about Django.
|
|
|
|
Getting help
|
|
============
|
|
|
|
Having trouble? We'd like to help!
|
|
|
|
* Try the :doc:`FAQ <faq/index>` -- it's got answers to many common questions.
|
|
|
|
* Looking for specific information? Try the :ref:`genindex`, :ref:`modindex` or
|
|
the :doc:`detailed table of contents <contents>`.
|
|
|
|
* Search for information in the archives of the |django-users| mailing list, or
|
|
`post a question`_.
|
|
|
|
* Ask a question in the `#django IRC channel`_, or search the `IRC logs`_ to see
|
|
if it's been asked before.
|
|
|
|
* Report bugs with Django in our `ticket tracker`_.
|
|
|
|
.. _archives: http://groups.google.com/group/django-users/
|
|
.. _post a question: https://groups.google.com/d/forum/django-users
|
|
.. _#django IRC channel: irc://irc.freenode.net/django
|
|
.. _IRC logs: http://django-irc-logs.com/
|
|
.. _ticket tracker: https://code.djangoproject.com/
|
|
|
|
First steps
|
|
===========
|
|
|
|
Are you new to Django or to programming? This is the place to start!
|
|
|
|
* **From scratch:**
|
|
:doc:`Overview <intro/overview>` |
|
|
:doc:`Installation <intro/install>`
|
|
|
|
* **Tutorial:**
|
|
:doc:`Part 1 <intro/tutorial01>` |
|
|
:doc:`Part 2 <intro/tutorial02>` |
|
|
:doc:`Part 3 <intro/tutorial03>` |
|
|
:doc:`Part 4 <intro/tutorial04>` |
|
|
:doc:`Part 5 <intro/tutorial05>` |
|
|
:doc:`Part 6 <intro/tutorial06>`
|
|
|
|
* **Advanced Tutorials:**
|
|
:doc:`How to write reusable apps <intro/reusable-apps>` |
|
|
:doc:`Writing your first patch for Django <intro/contributing>`
|
|
|
|
The model layer
|
|
===============
|
|
|
|
Django provides an abstraction layer (the "models") for structuring and
|
|
manipulating the data of your Web application. Learn more about it below:
|
|
|
|
* **Models:**
|
|
:doc:`Model syntax <topics/db/models>` |
|
|
:doc:`Field types <ref/models/fields>` |
|
|
:doc:`Meta options <ref/models/options>` |
|
|
:doc:`Model class <ref/models/class>`
|
|
|
|
* **QuerySets:**
|
|
:doc:`Executing queries <topics/db/queries>` |
|
|
:doc:`QuerySet method reference <ref/models/querysets>` |
|
|
:doc:`Query-related classes <ref/models/queries>`
|
|
|
|
* **Model instances:**
|
|
:doc:`Instance methods <ref/models/instances>` |
|
|
:doc:`Accessing related objects <ref/models/relations>`
|
|
|
|
* **Migrations:**
|
|
:doc:`Introduction to Migrations<topics/migrations>` |
|
|
:doc:`Operations reference <ref/migration-operations>` |
|
|
:doc:`SchemaEditor <ref/schema-editor>`
|
|
|
|
* **Advanced:**
|
|
:doc:`Managers <topics/db/managers>` |
|
|
:doc:`Raw SQL <topics/db/sql>` |
|
|
:doc:`Transactions <topics/db/transactions>` |
|
|
:doc:`Aggregation <topics/db/aggregation>` |
|
|
:doc:`Custom fields <howto/custom-model-fields>` |
|
|
:doc:`Multiple databases <topics/db/multi-db>` |
|
|
:doc:`Custom lookups <ref/models/custom-lookups>`
|
|
|
|
* **Other:**
|
|
:doc:`Supported databases <ref/databases>` |
|
|
:doc:`Legacy databases <howto/legacy-databases>` |
|
|
:doc:`Providing initial data <howto/initial-data>` |
|
|
:doc:`Optimize database access <topics/db/optimization>` |
|
|
:doc:`PostgreSQL specific features <ref/contrib/postgres/index>`
|
|
|
|
The view layer
|
|
==============
|
|
|
|
Django has the concept of "views" to encapsulate the logic responsible for
|
|
processing a user's request and for returning the response. Find all you need
|
|
to know about views via the links below:
|
|
|
|
* **The basics:**
|
|
:doc:`URLconfs <topics/http/urls>` |
|
|
:doc:`View functions <topics/http/views>` |
|
|
:doc:`Shortcuts <topics/http/shortcuts>` |
|
|
:doc:`Decorators <topics/http/decorators>`
|
|
|
|
* **Reference:**
|
|
:doc:`Built-in Views <ref/views>` |
|
|
:doc:`Request/response objects <ref/request-response>` |
|
|
:doc:`TemplateResponse objects <ref/template-response>`
|
|
|
|
* **File uploads:**
|
|
:doc:`Overview <topics/http/file-uploads>` |
|
|
:doc:`File objects <ref/files/file>` |
|
|
:doc:`Storage API <ref/files/storage>` |
|
|
:doc:`Managing files <topics/files>` |
|
|
:doc:`Custom storage <howto/custom-file-storage>`
|
|
|
|
* **Class-based views:**
|
|
:doc:`Overview <topics/class-based-views/index>` |
|
|
:doc:`Built-in display views <topics/class-based-views/generic-display>` |
|
|
:doc:`Built-in editing views <topics/class-based-views/generic-editing>` |
|
|
:doc:`Using mixins <topics/class-based-views/mixins>` |
|
|
:doc:`API reference <ref/class-based-views/index>` |
|
|
:doc:`Flattened index<ref/class-based-views/flattened-index>`
|
|
|
|
* **Advanced:**
|
|
:doc:`Generating CSV <howto/outputting-csv>` |
|
|
:doc:`Generating PDF <howto/outputting-pdf>`
|
|
|
|
* **Middleware:**
|
|
:doc:`Overview <topics/http/middleware>` |
|
|
:doc:`Built-in middleware classes <ref/middleware>`
|
|
|
|
The template layer
|
|
==================
|
|
|
|
The template layer provides a designer-friendly syntax for rendering the
|
|
information to be presented to the user. Learn how this syntax can be used by
|
|
designers and how it can be extended by programmers:
|
|
|
|
* **For designers:**
|
|
:doc:`Syntax overview <topics/templates>` |
|
|
:doc:`Built-in tags and filters <ref/templates/builtins>` |
|
|
:doc:`Web design helpers <ref/contrib/webdesign>` |
|
|
:doc:`Humanization <ref/contrib/humanize>`
|
|
|
|
* **For programmers:**
|
|
:doc:`Template API <ref/templates/api>` |
|
|
:doc:`Custom tags and filters <howto/custom-template-tags>`
|
|
|
|
Forms
|
|
=====
|
|
|
|
Django provides a rich framework to facilitate the creation of forms and the
|
|
manipulation of form data.
|
|
|
|
* **The basics:**
|
|
:doc:`Overview <topics/forms/index>` |
|
|
:doc:`Form API <ref/forms/api>` |
|
|
:doc:`Built-in fields <ref/forms/fields>` |
|
|
:doc:`Built-in widgets <ref/forms/widgets>`
|
|
|
|
* **Advanced:**
|
|
:doc:`Forms for models <topics/forms/modelforms>` |
|
|
:doc:`Integrating media <topics/forms/media>` |
|
|
:doc:`Formsets <topics/forms/formsets>` |
|
|
:doc:`Customizing validation <ref/forms/validation>`
|
|
|
|
* **Extras:**
|
|
:doc:`Form preview <ref/contrib/formtools/form-preview>` |
|
|
:doc:`Form wizard <ref/contrib/formtools/form-wizard>`
|
|
|
|
The development process
|
|
=======================
|
|
|
|
Learn about the various components and tools to help you in the development and
|
|
testing of Django applications:
|
|
|
|
* **Settings:**
|
|
:doc:`Overview <topics/settings>` |
|
|
:doc:`Full list of settings <ref/settings>`
|
|
|
|
* **Applications:**
|
|
:doc:`Overview <ref/applications>`
|
|
|
|
* **Exceptions:**
|
|
:doc:`Overview <ref/exceptions>`
|
|
|
|
* **django-admin.py and manage.py:**
|
|
:doc:`Overview <ref/django-admin>` |
|
|
:doc:`Adding custom commands <howto/custom-management-commands>`
|
|
|
|
* **Testing:**
|
|
:doc:`Introduction <topics/testing/index>` |
|
|
:doc:`Writing and running tests <topics/testing/overview>` |
|
|
:doc:`Included testing tools <topics/testing/tools>` |
|
|
:doc:`Advanced topics <topics/testing/advanced>`
|
|
|
|
* **Deployment:**
|
|
:doc:`Overview <howto/deployment/index>` |
|
|
:doc:`WSGI servers <howto/deployment/wsgi/index>` |
|
|
:doc:`FastCGI/SCGI/AJP <howto/deployment/fastcgi>` (deprecated) |
|
|
:doc:`Deploying static files <howto/static-files/deployment>` |
|
|
:doc:`Tracking code errors by email <howto/error-reporting>`
|
|
|
|
The admin
|
|
=========
|
|
|
|
Find all you need to know about the automated admin interface, one of Django's
|
|
most popular features:
|
|
|
|
* :doc:`Admin site <ref/contrib/admin/index>`
|
|
* :doc:`Admin actions <ref/contrib/admin/actions>`
|
|
* :doc:`Admin documentation generator<ref/contrib/admin/admindocs>`
|
|
|
|
Security
|
|
========
|
|
|
|
Security is a topic of paramount importance in the development of Web
|
|
applications and Django provides multiple protection tools and mechanisms:
|
|
|
|
* :doc:`Security overview <topics/security>`
|
|
* :doc:`Disclosed security issues in Django <releases/security>`
|
|
* :doc:`Clickjacking protection <ref/clickjacking>`
|
|
* :doc:`Cross Site Request Forgery protection <ref/contrib/csrf>`
|
|
* :doc:`Cryptographic signing <topics/signing>`
|
|
|
|
Internationalization and localization
|
|
=====================================
|
|
|
|
Django offers a robust internationalization and localization framework to
|
|
assist you in the development of applications for multiple languages and world
|
|
regions:
|
|
|
|
* :doc:`Overview <topics/i18n/index>` |
|
|
:doc:`Internationalization <topics/i18n/translation>` |
|
|
:ref:`Localization <how-to-create-language-files>` |
|
|
:doc:`Localized Web UI formatting and form input <topics/i18n/formatting>`
|
|
* :doc:`"Local flavor" <topics/localflavor>`
|
|
* :doc:`Time zones </topics/i18n/timezones>`
|
|
|
|
Performance and optimization
|
|
============================
|
|
|
|
There are a variety of techniques and tools that can help get your code running
|
|
more efficiently - faster, and using fewer system resources.
|
|
|
|
* :doc:`Performance and optimization overview <topics/performance>`
|
|
|
|
Python compatibility
|
|
====================
|
|
|
|
Django aims to be compatible with multiple different flavors and versions of
|
|
Python:
|
|
|
|
* :doc:`Jython support <howto/jython>`
|
|
* :doc:`Python 3 compatibility <topics/python3>`
|
|
|
|
Geographic framework
|
|
====================
|
|
|
|
:doc:`GeoDjango <ref/contrib/gis/index>` intends to be a world-class geographic
|
|
Web framework. Its goal is to make it as easy as possible to build GIS Web
|
|
applications and harness the power of spatially enabled data.
|
|
|
|
Common Web application tools
|
|
============================
|
|
|
|
Django offers multiple tools commonly needed in the development of Web
|
|
applications:
|
|
|
|
* :doc:`Authentication <topics/auth/index>`
|
|
* :doc:`Caching <topics/cache>`
|
|
* :doc:`Logging <topics/logging>`
|
|
* :doc:`Sending emails <topics/email>`
|
|
* :doc:`Syndication feeds (RSS/Atom) <ref/contrib/syndication>`
|
|
* :doc:`Pagination <topics/pagination>`
|
|
* :doc:`Messages framework <ref/contrib/messages>`
|
|
* :doc:`Serialization <topics/serialization>`
|
|
* :doc:`Sessions <topics/http/sessions>`
|
|
* :doc:`Sitemaps <ref/contrib/sitemaps>`
|
|
* :doc:`Static files management <ref/contrib/staticfiles>`
|
|
* :doc:`Data validation <ref/validators>`
|
|
|
|
Other core functionalities
|
|
==========================
|
|
|
|
Learn about some other core functionalities of the Django framework:
|
|
|
|
* :doc:`Conditional content processing <topics/conditional-view-processing>`
|
|
* :doc:`Content types and generic relations <ref/contrib/contenttypes>`
|
|
* :doc:`Flatpages <ref/contrib/flatpages>`
|
|
* :doc:`Redirects <ref/contrib/redirects>`
|
|
* :doc:`Signals <topics/signals>`
|
|
* :doc:`System check framework <topics/checks>`
|
|
* :doc:`The sites framework <ref/contrib/sites>`
|
|
* :doc:`Unicode in Django <ref/unicode>`
|
|
|
|
The Django open-source project
|
|
==============================
|
|
|
|
Learn about the development process for the Django project itself and about how
|
|
you can contribute:
|
|
|
|
* **Community:**
|
|
:doc:`How to get involved <internals/contributing/index>` |
|
|
:doc:`The release process <internals/release-process>` |
|
|
:doc:`Team of committers <internals/committers>` |
|
|
:doc:`The Django source code repository <internals/git>` |
|
|
:doc:`Security policies <internals/security>` |
|
|
:doc:`Mailing lists <internals/mailing-lists>`
|
|
|
|
* **Design philosophies:**
|
|
:doc:`Overview <misc/design-philosophies>`
|
|
|
|
* **Documentation:**
|
|
:doc:`About this documentation <internals/contributing/writing-documentation>`
|
|
|
|
* **Third-party distributions:**
|
|
:doc:`Overview <misc/distributions>`
|
|
|
|
* **Django over time:**
|
|
:doc:`API stability <misc/api-stability>` |
|
|
:doc:`Release notes and upgrading instructions <releases/index>` |
|
|
:doc:`Deprecation Timeline <internals/deprecation>`
|