3

我的生产 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)
4

1 回答 1

1

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

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

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

于 2013-10-21T12:02:55.420 回答