django.contrib.postgres
PostgreSQL has a number of features which are not shared by the other databases Django supports. This optional module contains model fields and form fields for a number of PostgreSQL specific data types.
Note
Django is, and will continue to be, a database-agnostic web framework. We would encourage those writing reusable applications for the Django community to write database-agnostic code where practical. However, we recognize that real world projects written using Django need not be database-agnostic. In fact, once a project reaches a given size changing the underlying data store is already a significant challenge and is likely to require changing the code base in some ways to handle differences between the data stores.
Django provides support for a number of data types which will only work with PostgreSQL. There is no fundamental reason why (for example) a contrib.mysql
module does not exist, except that PostgreSQL has the richest feature set of the supported databases so its users have the most to gain.
- PostgreSQL specific aggregation functions
- PostgreSQL specific database constraints
- PostgreSQL specific query expressions
- PostgreSQL specific model fields
- PostgreSQL specific form fields and widgets
- PostgreSQL specific database functions
- PostgreSQL specific model indexes
- PostgreSQL specific lookups
- Database migration operations
- Full text search
- Validators