2016-08-20 4 views
1

settings.pyКак переопределить Django-CMS шаблоны

from .ENV import BASE_DIR, ENV_VAR 

# SECURITY WARNING: don't run with debug turned on in production! 
# False if not in os.environ 
DEBUG = ENV_VAR('DEBUG', default=False) 

# SECURITY WARNING: keep the secret key used in production secret! 
# If not found in os.environ will raise ImproperlyConfigured error 
SECRET_KEY = ENV_VAR('SECRET_KEY') 

SITE_ID = 1 

# Application definition 
INSTALLED_APPS = [ 
    'djangocms_admin_style', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.admin', 
    'django.contrib.sites', 
    'django.contrib.sitemaps', 
    'django.contrib.staticfiles', 
    'django.contrib.messages', 
    'cms', 
    'menus', 
    'sekizai', 
    'treebeard', 
    'djangocms_text_ckeditor', 
    'djangocms_style', 
    'djangocms_column', 
    'djangocms_file', 
    'djangocms_googlemap', 
    'djangocms_inherit', 
    'djangocms_link', 
    'djangocms_picture', 
    'djangocms_teaser', 
    'djangocms_video', 
    'reversion', 
    'config', 
] 

MIDDLEWARE_CLASSES = [ 
    'cms.middleware.utils.ApphookReloadMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'cms.middleware.user.CurrentUserMiddleware', 
    'cms.middleware.page.CurrentPageMiddleware', 
    'cms.middleware.toolbar.ToolbarMiddleware', 
    'cms.middleware.language.LanguageCookieMiddleware' 
] 

ROOT_URLCONF = 'urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
      BASE_DIR('config/templates'), 
     ], 
     'OPTIONS': { 
      'context_processors': [ 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'django.core.context_processors.i18n', 
       'django.core.context_processors.debug', 
       'django.core.context_processors.request', 
       'django.core.context_processors.media', 
       'django.core.context_processors.csrf', 
       'django.core.context_processors.tz', 
       'sekizai.context_processors.sekizai', 
       'django.core.context_processors.static', 
       'cms.context_processors.cms_settings' 
      ], 
      'loaders': [ 
       'django.template.loaders.filesystem.Loader', 
       'django.template.loaders.app_directories.Loader', 
       'django.template.loaders.eggs.Loader' 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'config.wsgi.application' 

# Database 
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases 
DATABASES = { 
    'default': ENV_VAR.db() 
} 

# Password validation 
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators 
AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 

# Internationalization 
# https://docs.djangoproject.com/en/1.8/topics/i18n/ 
LANGUAGE_CODE = 'en' 
TIME_ZONE = 'Asia/Kolkata' 
USE_I18N = True 
USE_L10N = True 
USE_TZ = True 

MEDIA_ROOT = BASE_DIR('media', default='') 
MEDIA_URL = '/media/' 

# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.8/howto/static-files/ 
STATIC_URL = '/static/' 
STATIC_ROOT = BASE_DIR('static') 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
) 
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 

urls.py

from __future__ import absolute_import, print_function, unicode_literals 

from cms.sitemaps import CMSSitemap 
from django.conf import settings 
from django.conf.urls import include, url 
from django.conf.urls.i18n import i18n_patterns 
from django.contrib import admin 

admin.autodiscover() 

urlpatterns = [ 
    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', 
     {'sitemaps': {'cmspages': CMSSitemap}}), 
    url(r'^select2/', include('django_select2.urls')), 
] 

urlpatterns += i18n_patterns(
    '', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^', include('cms.urls')), 
) 

DIR Структура

. 
|-- apps 
| |-- __init__.py 
|-- config 
| |-- __init__.py 
| |-- settings 
| | |-- base.py 
| | |-- configurations 
| | | |-- DJANGOCMS.py 
| | | |-- DJANGO.py 
| | | |-- ENV.py 
| | | |-- GRAPPELLI.py 
| | | |-- __init__.py 
| | |-- dev.py 
| | |-- __init__.py 
| | `-- pro.py 
| |-- templates 
| | |-- base.html 
| | |-- feature.html 
| | |-- menu.html 
| | |-- page.html 
| |-- wsgi.py 
|-- manage.py 
|-- media 
|-- requirements 
| |-- base.txt 
| |-- dev.txt 
| `-- pro.txt 
|-- requirements.txt 
|-- static 
|-- urls.py 

enter image description here

Я не могу открыть localhost: 8000/он всегда перенаправляет меня на страницу входа. Затем я создал новый проект и на этот раз сохранил макет проекта по умолчанию, и теперь это то, что я вижу, если открыть локальный: 8000/

enter image description here

Так что, если кто-то может сказать мне, что случилось? ? Как использовать пользовательские шаблоны ???

ответ

1

Прежде всего, если он перенаправляет вас на страницу входа в систему, это, скорее всего, связано с отсутствием какого-либо контента. Исходя из этого вопроса, я предполагаю, что это новая установка без страниц, поэтому вам нужно будет войти в систему, создать свои страницы, а затем вы должны загрузить ее без перенаправления администратора.

С точки зрения переопределения шаблонов он работает так же, как и для любого шаблона django или app.

Если вы хотите использовать собственный шаблон, вы просто создаете свою собственную версию по тому же пути, что и оригинал, но в одном из ваших собственных каталогов шаблонов.

Например, у меня есть каталог в моем проекте, где я переопределяю шаблоны CMS;

/project/myapp/templates/cms/toolbar/plugin.html

Что вы можете увидеть в приложении жизни CMS в том же пути шаблона;

https://github.com/divio/django-cms/tree/release/3.3.x/cms/templates/cms/toolbar

Если у вас есть шаблоны, которые вы хотите сделать доступными в качестве шаблонов страниц для CMS, то Eсть CMS_TEMPLATES настройки, которые вы добавляете, как это;

CMS_TEMPLATES = (
    ('home.html', 'Homepage'), 
    ('article.html', 'Article'), 

    ('blogs/entry_form.html', 'Blogs Competition Entry Form'), 
)