mirror of
https://github.com/django/django.git
synced 2024-11-18 23:44:22 +00:00
20bab2cf9d
Allowed users to specify which lookups or transforms ("nested lookus") are available for fields. The implementation is now class based. Squashed commit of the following: commitfa7a7195f1
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 18 10:53:24 2014 +0200 Added lookup registration API docs commiteb1c8ce164
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Tue Jan 14 18:59:36 2014 +0200 Release notes and other minor docs changes commit11501c29c9
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Jan 12 20:53:03 2014 +0200 Forgot to add custom_lookups tests in prev commit commit83173b960e
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Jan 12 19:59:12 2014 +0200 Renamed Extract -> Transform commit3b18d9f3a1
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Jan 12 19:51:53 2014 +0200 Removed suggestion of temporary lookup registration from docs commit21d0c7631c
Merge:2509006
f2dc442
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Jan 12 09:38:23 2014 -0800 Merge pull request #2 from mjtamlyn/lookups_3 Reworked custom lookups docs. commitf2dc4429a1
Author: Marc Tamlyn <marc.tamlyn@gmail.com> Date: Sun Jan 12 13:15:05 2014 +0000 Reworked custom lookups docs. Mostly just formatting and rewording, but also replaced the example using ``YearExtract`` to use an example which is unlikely to ever be possible directly in the ORM. commit2509006506
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Jan 12 13:19:13 2014 +0200 Removed unused import commit4fba5dfaa0
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 22:34:41 2014 +0200 Added docs to index commit6d53963f37
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 22:10:24 2014 +0200 Dead code removal commitf9cc039007
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 19:00:43 2014 +0200 A new try for docs commit33aa18a6e3
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 14:57:12 2014 +0200 Renamed get_cols to get_group_by_cols commitc7d5f8661b
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 14:45:53 2014 +0200 Altered query string customization for backends vendors The new way is trying to call first method 'as_' + connection.vendor. If that doesn't exist, then call as_sql(). Also altered how lookup registration is done. There is now RegisterLookupMixin class that is used by Field, Extract and sql.Aggregate. This allows one to register lookups for extracts and aggregates in the same way lookup registration is done for fields. commit90e7004ec1
Merge:66649ff
f7c2c0a
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 13:21:01 2014 +0200 Merge branch 'master' into lookups_3 commit66649ff891
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Jan 11 13:16:01 2014 +0200 Some rewording in docs commit31b8faa627
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Dec 29 15:52:29 2013 +0200 Cleanup based on review comments commit1016159f34
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Dec 28 18:37:04 2013 +0200 Proof-of-concept fix for #16731 Implemented only for SQLite and PostgreSQL, and only for startswith and istartswith lookups. commit193cd097ca
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Dec 28 17:57:58 2013 +0200 Fixed #11722 -- iexact=F() produced invalid SQL commit08ed3c3b49
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Dec 21 23:59:52 2013 +0200 Made Lookup and Extract available from django.db.models commitb99c8d83c9
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Dec 21 23:06:29 2013 +0200 Fixed review notes by Loic commit049eebc070
Merge:ed8fab7
b80a835
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Dec 21 22:53:10 2013 +0200 Merge branch 'master' into lookups_3 Conflicts: django/db/models/fields/__init__.py django/db/models/sql/compiler.py django/db/models/sql/query.py tests/null_queries/tests.py commited8fab7fe8
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Dec 21 22:47:23 2013 +0200 Made Extracts aware of full lookup path commit27a57b7aed
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Dec 1 21:10:11 2013 +0200 Removed debugger import commit074e0f5aca
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Dec 1 21:02:16 2013 +0200 GIS lookup support added commit760e28e72b
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Dec 1 20:04:31 2013 +0200 Removed usage of Constraint, used Lookup instead commiteac4776684
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Dec 1 02:22:30 2013 +0200 Minor cleanup of Lookup API commit2adf50428d
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sun Dec 1 02:14:19 2013 +0200 Added documentation, polished implementation commit32c04357a8
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Nov 30 23:10:15 2013 +0200 Avoid OrderedDict creation on lookup aggregate check commit7c8b3a32cc
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Sat Nov 30 23:04:34 2013 +0200 Implemented nested lookups But there is no support of using lookups outside filtering yet. commit4d219d4cde
Author: Anssi Kääriäinen <akaariai@gmail.com> Date: Wed Nov 27 22:07:30 2013 +0200 Initial implementation of custom lookups
324 lines
10 KiB
Plaintext
324 lines
10 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>`
|
|
|
|
* **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>`
|
|
|
|
* **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>`
|
|
|
|
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:`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:`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>`
|