django-cms拒绝在生产中发布特定页面 - 我应该在哪里开始调试?

时间:2013-10-14 13:12:39

标签: django apache logging django-cms

我的生产cms有一个小问题。其中一个页面(大约有50个)拒绝发布。我的意思是:如果我点击管理界面中的“发布”或使用方法publish_page我没有收到任何错误。在页面列表视图中,此页面有一个绿色检查。但是当我在那里浏览时,我得到了一个很好的404错误。如果我刷新页面列表视图,绿色检查将变为红色标记(未发布)。

我不知道应该从哪里开始调试此问题。

>>> from cms.api import publish_page
>>> p = Page.objects.get(pk__exact=66)
>>> r = User.objects.get(pk=2)
>>> p2 = publish_page(p, r)
>>> p2
<cms.models.pagemodel.Page object at 0x3561910>
>>> p2.is_public_published()
True

我的/ var / log / httpd / access_log中没有错误跟踪,也没有/ var / log / httpd / error_log(除了404警告之外)。这些是我的日志记录设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'department.models': {
            'handlers': ['console'],
            'level': 'DEBUG'
        },
    }
}

您能否建议我从哪里开始调试?谢谢!

罗伯特

更新:

我的虚拟环境安装了以下内容:

Django          - 1.5.4        - active 
PIL             - 1.1.7        - active 
Pillow          - 2.2.1        - active 
Pygments        - 1.6          - active 
Python          - 2.7.3        - active development (/usr/lib/python2.7/lib-dynload)
South           - 0.8.2        - active 
argparse        - 1.2.1        - active development (/usr/lib/python2.7)
bpython         - 0.12         - active 
cmsplugin-news  - 0.4.2        - active 
django-autoslug - 1.7.1        - active 
django-ckeditor - 4.0.2        - active 
django-classy-tags - 0.4          - active 
django-cms      - 2.4.2        - active 
django-country-dialcode - 0.4.8        - active 
django-extensions - 1.2.2        - active 
django-guardian - 1.1.1        - active 
django-hvad     - 0.3          - active 
django-modeltranslation - 0.6.1        - active 
django-mptt     - 0.5.2        - active 
django-reusableapps - 0.1.1        - active 
django-reversion - 1.7.1        - active 
django-sekizai  - 0.7          - active 
djangocms-text-ckeditor - 1.0.10       - active 
html5lib        - 1.0b3        - active 
pip             - 1.2.1        - active 
psycopg2        - 2.5.1        - active 
python-ldap     - 2.4.13       - active 
python-magic    - 0.4.6        - active 
pytz            - 2013.7       - active 
setuptools      - 1.1.6        - active 
six             - 1.4.1        - active 
switch2bill-common - 2.8.1        - active 
wsgiref         - 0.1.2        - active development (/usr/lib/python2.7)

1 个答案:

答案 0 :(得分:1)

页面的列表视图是Django-CMS主要由ajax请求提供支持。

我将使用Firebug查看该视图,以查看是否有任何发布函数从ajax请求返回500个错误,这些错误不会导致视图本身抛出500.

我的插件已损坏,反过来导致发布失败。在页面的列表视图中,页面似乎正确发布,选中复选框等,但在Firebug中,这些ajax POST请求返回500个错误。