Index: django/db/backends/postgresql/base.py
===================================================================
--- django/db/backends/postgresql/base.py	(revision 6098)
+++ django/db/backends/postgresql/base.py	(working copy)
@@ -81,6 +81,7 @@
 
     def _cursor(self, settings):
         set_tz = False
+        set_path = False
         if self.connection is None:
             set_tz = True
             if settings.DATABASE_NAME == '':
@@ -95,11 +96,15 @@
                 conn_string += " host=%s" % settings.DATABASE_HOST
             if settings.DATABASE_PORT:
                 conn_string += " port=%s" % settings.DATABASE_PORT
+            if settings.DATABASE_SCHEMAS:
+                set_path = True
             self.connection = Database.connect(conn_string, **self.options)
             self.connection.set_isolation_level(1) # make transactions transparent to all cursors
         cursor = self.connection.cursor()
         if set_tz:
             cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE])
+        if set_path:
+            cursor.execute("SET search_path TO %s", settings.DATABASE_SCHEMAS)
         cursor.execute("SET client_encoding to 'UNICODE'")
         cursor = UnicodeCursorWrapper(cursor, 'utf-8')
         return cursor
Index: django/db/backends/postgresql_psycopg2/base.py
===================================================================
--- django/db/backends/postgresql_psycopg2/base.py	(revision 6098)
+++ django/db/backends/postgresql_psycopg2/base.py	(working copy)
@@ -43,6 +43,7 @@
 
     def _cursor(self, settings):
         set_tz = False
+        set_path = False
         if self.connection is None:
             set_tz = True
             if settings.DATABASE_NAME == '':
@@ -57,6 +58,8 @@
                 conn_string += " host=%s" % settings.DATABASE_HOST
             if settings.DATABASE_PORT:
                 conn_string += " port=%s" % settings.DATABASE_PORT
+            if settings.DATABASE_SCHEMAS:
+                set_path = True
             self.connection = Database.connect(conn_string, **self.options)
             self.connection.set_isolation_level(1) # make transactions transparent to all cursors
             self.connection.set_client_encoding('UTF8')
@@ -64,4 +67,6 @@
         cursor.tzinfo_factory = None
         if set_tz:
             cursor.execute("SET TIME ZONE %s", [settings.TIME_ZONE])
+        if set_path:
+            cursor.execute("SET search_path TO %s", settings.DATABASE_SCHEMAS)
         return cursor
Index: django/conf/project_template/settings.py
===================================================================
--- django/conf/project_template/settings.py	(revision 6098)
+++ django/conf/project_template/settings.py	(working copy)
@@ -11,6 +11,7 @@
 
 DATABASE_ENGINE = ''           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
 DATABASE_NAME = ''             # Or path to database file if using sqlite3.
+DATABASE_SCHEMAS = ''          # Only used with postgresq to support multiple schemas
 DATABASE_USER = ''             # Not used with sqlite3.
 DATABASE_PASSWORD = ''         # Not used with sqlite3.
 DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
Index: docs/settings.txt
===================================================================
--- docs/settings.txt	(revision 6098)
+++ docs/settings.txt	(working copy)
@@ -316,6 +316,16 @@
 
 The username to use when connecting to the database. Not used with SQLite.
 
+DATABASE_SCHEMAS
+----------------
+
+Default: ``''`` (Empty string)
+
+On databases supporting Schemas, like PostgreSQL, the search_path will be
+set to the value of this setting which is, by default, ``public``.
+
+Please, note that currently the only backend which schema support is PostgreSQL.
+
 DATE_FORMAT
 -----------
 
