Как я могу отключить администратора Django в развернутом проекте, но оставить его для локальной разработки? - PullRequest
29 голосов
/ 30 января 2011

В настоящее время я работаю в проекте Django, для которого мне нужен доступ к административной области для локальной разработки, но я хочу отключить его на развернутом сайте (из соображений безопасности, среди прочего).Я достигаю этого программно ( т.е. , используя settings.py).

Большое спасибо.

Ответы [ 2 ]

45 голосов
/ 30 января 2011

Сначала создайте схему, чтобы ваш рабочий сервер мог иметь другие настройки, чем ваши серверы разработки.Простой способ сделать это с помощью файла local_settings.py, игнорируемого системой управления исходным кодом, но есть много более изящных способов сделать это.

Затем, в вашем файле settings.py, поместите:1004 *

и в файле настроек только для производства введите:

ADMIN_ENABLED = False

Затем в свой urls.py:

if settings.ADMIN_ENABLED:
    urlpatterns += patterns('',
        (r'^admin/(.*)', include(admin.site.urls)),
        # ..maybe other stuff you want to be dev-only, etc...
        )
1 голос
/ 27 февраля 2019

Расширение @NedBatchelder ответ, вы можете использовать правильный if statement, например:

if settings.ADMIN_ENABLED is True:
    ...

А также удалите 'django.contrib.admin' из INSTALLED_APPS = [...] и используйте то же условие:

if settings.ADMIN_ENABLED is True:
    INSTALLED_APPS.append('django.contrib.admin')

Таким образом, модуль не будет загружен, например. collectstatic не копирует ненужные статические файлы, используемые только в админке (шрифты, изображения, css, js).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...