Мой проект - это новая установка django-cms 2.4.1, работающая с MySQL.Django cms - Javascript "undefined" строка предупреждения при попытке опубликовать или опубликовать страницу на странице списка
Когда я пытаюсь опубликовать или отменить публикацию страницы через интерфейс списка страниц, она выведет ошибку предупреждения Javascript со строкой «undefined». Странно то, что он выполняет действие (публиковать или публиковать), несмотря на ошибку. Он не включит этот флажок, когда я попытаюсь опубликовать его, но после перезагрузки страницы он будет опубликован и проверен. Если я попытаюсь отменить публикацию, это отключит флажок.
Просто для того, чтобы подчеркнуть, что если я попытаюсь выполнить эти действия с помощью формы редактирования, он отлично работает.
Кажется, что у меня нет проблем в моих настройках.py, которые могут быть причиной этого.
Я осмотрел запрос ajax, который был инспектором Chrome, и все, кажется, в порядке!
Ответ просто отлично выглядит следующим образом:
Request URL: http://127.0.0.1:8000/admin/cms/page/11/change-status/
Request Method:POST
Status Code:200 OK!
Preview tab from Chrome inspector
Пожалуйста, ребята, дайте мне руку на него.
Это мой settings.py:
# -*- coding: utf-8 -*-
import os
gettext = lambda s: s
from datetime import datetime
from run_locale import local_run
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
PROJECT_NAME='zecaffe'
PRODUCTION = False
TESTE_SERVER = False
DEBUG = True
print "Running at: "+local_run
if local_run == 'producao':
PRODUCTION = True
DEBUG = False
elif local_run == 'teste':
TESTE_SERVER = True
TEMPLATE_DEBUG = DEBUG
if PRODUCTION and TESTE_SERVER:
raise Exception(u"""
Django: Conflito de configuração. Apenas uma entre as variáveis PRODUCTION e TESTE_SERVER
pode ser definida como True.
"""
)
ADMINS = (
# ('Your Name', '[email protected]'),
)
MANAGERS = ADMINS
if PRODUCTION:
PAGE_TO_EMAIL = '[email protected]'
elif TESTE_SERVER:
PAGE_TO_EMAIL = '[email protected]'
else:
PAGE_TO_EMAIL = '[email protected]'
CMS_SEO_FIELDS = True
CMS_REDIRECTS = True
if PRODUCTION:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : '[database-name]',
'USER' : '[database-user]',
'PASSWORD' : '[databse-pass]',
'HOST' : 'localhost',
'PORT' : '',
}
}
elif TESTE_SERVER:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : '[database-name]',
'USER' : '[database-user]',
'PASSWORD' : '[databse-pass]',
'HOST' : 'localhost',
'PORT' : '',
}
}
else:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : '[database-name]',
'USER' : '[database-user]',
'PASSWORD' : '[databse-pass]',
'HOST' : 'localhost',
'PORT' : '',
}
}
TIME_ZONE = 'America/Sao_Paulo'
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'pt-br'
LANGUAGES = (
('pt-br', gettext(u'Português Brasil')),
)
"""
CMS_LANGUAGES = {
1: [
{
'code': 'pt-br',
'name': gettext(u'Português Brasil'),
#'fallbacks': ['de', 'fr'],
'public': True,
'hide_untranslated': False,
'redirect_on_fallback':False,
},
],
'default': {
'fallbacks': ['pt-br'],
'redirect_on_fallback':True,
'public': False,
'hide_untranslated': False,
}
}
"""
SITE_ID = 1
# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True
# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True
if PRODUCTION:
# Caminho absoluto dentro do servidor
MEDIA_ROOT = '/home/[user]/webapps/zecaffe/zecaffe/media/'
STATIC_ROOT = '/home/[user]/webapps/zecaffe/zecaffe/static/'
elif TESTE_SERVER:
MEDIA_ROOT = '/home/[user]/webapps/teste_zecaffe/zecaffe/media/'
STATIC_ROOT = '/home/[user]/webapps/teste_zecaffe/zecaffe/static/'
else:
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
# Additional locations of static files
STATICFILES_DIRS = (
('admin', os.path.join(STATIC_ROOT, 'admin')),
('cms', os.path.join(STATIC_ROOT, 'cms')),
('ckeditor', os.path.join(STATIC_ROOT, 'ckeditor')),
('css', os.path.join(STATIC_ROOT, 'css')),
('img', os.path.join(STATIC_ROOT, 'img')),
('js', os.path.join(STATIC_ROOT, 'js')),
('jquery_ui', os.path.join(STATIC_ROOT, 'jquery_ui')),
('galleria', os.path.join(STATIC_ROOT, 'galleria')),
#('font-face', os.path.join(STATIC_ROOT, 'font-face')),
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
# Make this unique, and don't share it with anybody.
SECRET_KEY = '-----------------------------------'
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'zecaffe.middlewares.ThreadLocals'
#'django_globals.middleware.Global',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.tz',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
'core.context_processors.crop_settings',
'core.context_processors.paginas',
'core.context_processors.revisao',
'core.context_processors.site_domain',
'core.context_processors.facebook_settings',
'core.context_processors.twitter_settings',
)
CMS_TEMPLATES = (
('index.html', u'Template | Início'),
#('colunas_inicio.html', u'Template | Colunas Início'),
#('colunas_colunista.html', u'Template | Colunas Colunista'),
('contato.html', u'Template | Contato'),
)
ROOT_URLCONF = '%s.urls' % PROJECT_NAME
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, 'templates'),
)
#----------------------------CKEDITOR SETTINGS--------------------------------#
CKEDITOR_MEDIA_PREFIX = "/media/ckeditor/"
if PRODUCTION:
CKEDITOR_UPLOAD_PATH = '/home/[user]/webapps/zecaffe/zecaffe/media/ckeditor_imgs/'
elif TESTE_SERVER:
CKEDITOR_UPLOAD_PATH = '/home/[user]/webapps/teste_zecaffe/zecaffe/media/ckeditor_imgs/'
else:
CKEDITOR_UPLOAD_PATH = os.path.join(PROJECT_DIR, 'media/ckeditor_imgs/')
#CKEDITOR_UPLOAD_PREFIX = "http://localhost:8000/media/ckeditor_imgs/"
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'Full',
'height': 300,
'width': 1200,
#'skin' : 'v2',
},
}
#-----------------------------------------------------------------------------#
# ------------------ MYOWN SETTINGS ------------------#
DEBUG_EXCEPTIONS = True
if PRODUCTION:
REVISAO = '55a88aa'
else:
REVISAO = time = int(datetime.now().microsecond)
if PRODUCTION:
SITE_DOMAIN = 'http://zecaffe.com.br/'
elif TESTE_SERVER:
SITE_DOMAIN = 'http://teste.zecaffe.com.br/'
else:
SITE_DOMAIN = 'http://localhost:8000/'
if PRODUCTION or TESTE_SERVER:
FACEBOOK_APP_ID = '-----'
FACEBOOK_APP_SECRET = '------'
TWITTER_CONSUMER_KEY = '------'
TWITTER_CONSUMER_SECRET = '------'
else:
FACEBOOK_APP_ID = ''
FACEBOOK_APP_SECRET = ''
TWITTER_CONSUMER_KEY = '------'
TWITTER_CONSUMER_SECRET = '-------'
CROP_SETTINGS = {
'noticia':{
'imagem_original' : (640, 480),
'imagem_destaque_g_temp' : (286, 156),
'imagem_destaque_p_temp' : (200, 220),
'imagem_destaque_w_temp' : (71, 71),
},
'galeria_imagem':{
'imagem_light_box' : (800, 600),
'imagem_slide' : (700, 350),
'thumb' : (125, 80),
}
}
#----------------------------------------------------------#
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.staticfiles',
'cms',
'menus',
'mptt',
'south',
'sekizai',
'cms.plugins.text',
'cms.plugins.picture',
'cms.plugins.link',
'cms.plugins.file',
'cms.plugins.flash',
'cms.plugins.teaser',
'cms.plugins.video',
'cms.plugins.twitter',
'cms.plugins.snippet',
'cms.plugins.googlemap',
'ckeditor',
'core',
'noticia',
'social',
)
"""
CMS_PLACEHOLDER_CONF = {
'content': {
'plugins': ['TextPlugin', 'PicturePlugin'],
'text_only_plugins': ['LinkPlugin'],
'extra_context': {"width":640},
'name':gettext("Content"),
},
'right-column': {
"plugins": ['TeaserPlugin', 'LinkPlugin'],
"extra_context": {"width":280},
'name':gettext("Right Column"),
'limits': {
'global': 2,
'TeaserPlugin': 1,
'LinkPlugin': 1,
},
},
'base.html content': {
"plugins": ['TextPlugin', 'PicturePlugin', 'TeaserPlugin']
},
}
"""
EMAIL_HOST = 'smtp.webfaction.com'
EMAIL_HOST_USER = '[mailbox]'
EMAIL_HOST_PASSWORD = '[mailbox-pass]'
DEFAULT_FROM_EMAIL = '[email protected]'
SERVER_EMAIL = '[email protected]'
EMAIL_PORT = 587
EMAIL_SUBJECT_PREFIX = u'Zé Caffé'
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
Пожалуйста, ребята, дайте мне руку на него.
Это мой settings.py
Пожалуйста, ребята, дайте мне руку на него.
Вы только что сохранили вселенную, огромное спасибо. Я использовал старые шаблоны! Извините за мою тупость. Я думал, что я скопировал шаблоны из правого каталога env, но я действительно скопировал из env из более старого проекта. – Mauricio
Густаво, у меня тоже возникают проблемы с шаблонами. Я хотел бы посоветоваться и убедиться, что я использую правильные шаблоны, как я могу это сделать? Должен ли django-cms заменять некоторые шаблоны администрирования по умолчанию/статические файлы? Когда я сравнивал две структуры папок, они одинаковы. –
Привет Сэм. Вы должны обязательно скопировать статические файлы администратора с пути вашего пакета установки к вашему пути к проекту. Даже разные версии cms, имеющие одинаковые структуры, обычно есть несколько изменений в css и js, что вызывает некоторые ошибки. Чтобы правильно скопировать статические файлы в проект, вы должны запустить команду collectstatic. – Mauricio