LINUX.ORG.RU

Django admin tools (theming)

 , ,


0

1

Всем доброго времени суток!

Такая проблема. django-admin-tools не находит мои стили.

settings.py

...
INSTALLED_APPS = (
    'admin_tools',
    'admin_tools.theming',
    'admin_tools.menu',
    'admin_tools.dashboard',

    ...
)

...

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.request",
    "django.contrib.messages.context_processors.messages"
)

STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "static")

MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "templates/"),
)

ADMIN_TOOLS_MENU = "admin_files.menu.CustomMenu"
ADMIN_TOOLS_INDEX_DASHBOARD = "admin_files.dashboard.CustomIndexDashboard"
ADMIN_TOOLS_APP_INDEX_DASHBOARD = "admin_files.dashboard.CustomAppIndexDashboard"
ADMIN_TOOLS_THEMING_CSS = "css/theming.css"

Админка работает - все норм, только мой стиль (theming.css), находящийся в project_root/static/css/theming.css не подгружает, пишет ошибку 404!

Все делал по офф. доке - http://django-admin-tools.readthedocs.org/en/latest/configuration.html

WTF, господа?

P.S. django-admin-tools (v0.5.1), Django (v1.6.5)


Ответ на: комментарий от Siado

Да пробовал уже.

Статику собрал. изменил путь к файлу theming: admin_tools/css/themin.css - ругаться перестал. Файл читается, но читается не из каталога статик, а из каталога самого диструбутива (пакта) django-admin-tools. Как заставить админку читать файл стилей из каталога статик?

djnoob ()
Ответ на: комментарий от djnoob

В дебаге вся статика берется из директорий static отдельных приложений (в данном случае admin_tools). Из общей директории static файлы отдает http-сервер (nginx, apache и т.п.)

du_hast ()
Последнее исправление: du_hast (всего исправлений: 1 )

В джанге статика (ровно как и шаблоны) отдается сперва из каталогов STATICFILES_DIRS/TEMPLATE_DIRS, и только потом из каталогов static/templates приложений.

Следовательно, ваша проблема решается просто: вам надо в settings.py прописать следующие строчки:

import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates'),
)

И тогда статика и шаблоны из каталогов static и templates расположенных в каталоге проекта перекроют свои аналоги в каталогах приложений.

k0valenk0_igor ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.