| | 116 | |
| | 117 | == Refactored the admin app not to require its own settings file == |
| | 118 | |
| | 119 | As of an upcoming changeset, the admin will have been refactored. |
| | 120 | |
| | 121 | === What changed === |
| | 122 | |
| | 123 | * The admin no longer requires its own settings file. The "main" site and admin site can run on the same Django installation. |
| | 124 | * All the admin code moved to {{{django/contrib/admin}}}. |
| | 125 | * If you're using the admin, you need to add {{{"django.contrib.admin"}}} to your {{{INSTALLED_APPS}}}. |
| | 126 | * The admin database table isn't installed unless you explicitly have the admin installed ({{{django-admin.py install admin}}}). |
| | 127 | * Renamed the admin log database table to give it a {{{"django"}}} prefix. |
| | 128 | |
| | 129 | === How to update your code === |
| | 130 | |
| | 131 | If you're using a Django installation from before this changeset, do the following to restore your admin site: |
| | 132 | |
| | 133 | * Execute this SQL command: {{{ALTER TABLE auth_admin_log RENAME TO django_admin_log;}}} |
| | 134 | * Edit your Django settings file (probably called {{{settings/main.py}}}) to make the following changes: |
| | 135 | * Add {{{"django.contrib.admin"}}} to {{{INSTALLED_APPS}}}. Order doesn't matter; it can be the first, last, whatever. |
| | 136 | * Remove {{{"django.middleware.admin.AdminUserRequired"}}} from {{{MIDDLEWARE_CLASSES}}}, if it's in there. |
| | 137 | * Add {{{"django.middleware.sessions.SessionMiddleware"}}} to {{{MIDDLEWARE_CLASSES}}}, if it's not already in there. |
| | 138 | * Add {{{"django.core.template.loaders.app_directories.load_template_source"}}} to {{{TEMPLATE_LOADERS}}}, after {{{"django.core.template.loaders.filesystem.load_template_source"}}}. If you don't have the {{{TEMPLATE_LOADERS}}} setting, set it to this: |
| | 139 | {{{ |
| | 140 | TEMPLATE_LOADERS = ( |
| | 141 | 'django.core.template.loaders.filesystem.load_template_source', |
| | 142 | 'django.core.template.loaders.app_directories.load_template_source', |
| | 143 | ) |
| | 144 | }}} |
| | 145 | |
| | 146 | * Remove your admin settings file (probably called {{{settings/admin.py}}}) and admin URLconf (probably called {{{settings/urls/admin.py}}}). |
| | 147 | * Edit your main URLconf (probably called {{{settings/urls/main.py}}}) and add this line: |
| | 148 | |
| | 149 | {{{ |
| | 150 | (r'^admin/', include('django.contrib.admin.urls.admin')), |
| | 151 | }}} |
| | 152 | |
| | 153 | Change that {{{"admin"}}} to whatever URL you were using for the admin site. |
| | 154 | |
| | 155 | The following steps are optional but will tighten your code up. All assume your project is called {{{myproject}}}. |
| | 156 | |
| | 157 | * Move {{{myproject/settings/urls/main.py}}} to {{{myproject/urls.py}}}. |
| | 158 | * Delete {{{myproject/settings/urls/admin.py}}} (unless you had custom things in it, of course). |
| | 159 | * Move {{{myproject/settings/main.py}}} to {{{myproject/settings.py}}}. |
| | 160 | * Edit {{{myproject/settings.py}}} to change {{{ROOT_URLCONF}} from {{{"myproject.settings.urls.main"}}} to {{{"myproject.urls"}}}. |