Python Django cms-Javascript“;“未定义”;尝试在页面列表上发布或取消发布页面时出现字符串警报错误

Python Django cms-Javascript“;“未定义”;尝试在页面列表上发布或取消发布页面时出现字符串警报错误,python,django,web,django-cms,Python,Django,Web,Django Cms,我的项目是一个全新安装的django cms 2.4.1,运行MySQL 当我试图通过页面列表界面发布或取消发布页面时,它会弹出一个Javascript警报错误,字符串为“undefined”。奇怪的是,尽管有错误,它仍然执行操作(发布或取消发布)。当我尝试发布时,它不会启用复选框,但在我重新加载页面后,它会显示“已发布”和“已选中”。如果我尝试取消发布,它将禁用该复选框 只是想强调一下,如果我尝试通过编辑表单执行此操作,它会非常有效 我似乎在settings.py中没有发现任何可能导致此问题的

我的项目是一个全新安装的django cms 2.4.1,运行MySQL

当我试图通过页面列表界面发布或取消发布页面时,它会弹出一个Javascript警报错误,字符串为“undefined”。奇怪的是,尽管有错误,它仍然执行操作(发布或取消发布)。当我尝试发布时,它不会启用复选框,但在我重新加载页面后,它会显示“已发布”和“已选中”。如果我尝试取消发布,它将禁用该复选框

只是想强调一下,如果我尝试通过编辑表单执行此操作,它会非常有效

我似乎在settings.py中没有发现任何可能导致此问题的问题

我用Chrome inspector检查了ajax请求,一切似乎都很好

回答如下:

Request URL: http://127.0.0.1:8000/admin/cms/page/11/change-status/
Request Method:POST
Status Code:200 OK!

伙计们,帮我一把

这是my 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', 'your_email@domain.com'),
)

MANAGERS = ADMINS

if PRODUCTION:
    PAGE_TO_EMAIL = 'email@example.com.br'
elif TESTE_SERVER:
    PAGE_TO_EMAIL = 'email@example.com.br'
else:
    PAGE_TO_EMAIL = 'email@example.com.br'


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@example.com.br'
SERVER_EMAIL = 'email@example.com.br'
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,
        },
    }
}
伙计们,帮我一把

这是我的设置.py


伙计们,请帮我一把。

这曾经发生在我身上,你们是从django cms的旧版本迁移过来的吗?如果是,您应该检查您的django管理模板,因为如果您使用较新的django cms和以前版本中的较旧模板,则会出现一些疯狂的冲突。因此,请确保将django/django cms中所有旧的管理静态文件和模板替换为新的。您可以在env/site packages/django/contrib/admin/templates、/site packages/django/contrib/admin/static/admin和/site packages/cms/static文件夹中找到它


如果您没有迁移,而且是新安装的,那真的很奇怪。

我曾经遇到过这种情况,您是从django cms的旧版本迁移过来的吗?如果是,您应该检查您的django管理模板,因为如果您使用较新的django cms和以前版本中的较旧模板,则会出现一些疯狂的冲突。因此,请确保将django/django cms中所有旧的管理静态文件和模板替换为新的。您可以在env/site packages/django/contrib/admin/templates、/site packages/django/contrib/admin/static/admin和/site packages/cms/static文件夹中找到它


如果你没有迁移,而且是新安装的,那真的很奇怪。

你刚刚拯救了整个宇宙,非常感谢。我确实在使用旧模板!对不起我的沉默。我以为我是从正确的env目录中复制了模板,但实际上我是从一个旧项目的env中复制的。我想接受你的建议,并确保我使用的是正确的模板,我该如何做呢?django cms是否应该替换一些默认的管理模板/静态文件?当我比较这两个文件夹结构时,它们是相同的。嗨,山姆。你应该确保将管理员静态文件从安装包的路径复制到你的项目路径。即使不同版本的cms具有相同的结构,通常css和js上也很少有引起一些bug的更改。要将静态文件正确复制到您的项目中,您应该运行collectstatic命令。您刚刚拯救了整个世界,非常感谢。我确实在使用旧模板!对不起我的沉默。我以为我是从正确的env目录中复制了模板,但实际上我是从一个旧项目的env中复制的。我想接受你的建议,并确保我使用的是正确的模板,我该如何做呢?django cms是否应该替换一些默认的管理模板/静态文件?当我比较这两个文件夹结构时,它们是相同的。嗨,山姆。你应该确保将管理员静态文件从安装包的路径复制到你的项目路径。即使不同版本的cms具有相同的结构,通常css和js上也很少有引起一些bug的更改。要将静态文件正确复制到项目中,应运行collectstatic命令。