Django和Celery:管理员任务列表不显示值

All*_*man 5 django django-admin redis celery django-celery

我的问题应该是相当简单的,而不是需要拼命修复的问题.谷歌无法给我我想要的答案,所以我希望你的专业知识可以帮助我.我在用:

Django 1.4
Celery 2.5.5
Redis 2.4.10 (latest version on homebrew?)
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令运行所有内容:

redis-server /usr/local/etc/redis.conf
foreman run python manage.py runserver
foreman run "python manage.py celeryd -E -B --loglevel=INFO"
foreman run python manage.py celerycam
Run Code Online (Sandbox Code Playgroud)

在我的settings.py中,我为Celery配置了以下配置:

import djcelery
djcelery.setup_loader()

BROKER_URL = redis
CELERY_RESULT_BACKEND = 'redis'
CELERY_REDIS_HOST = "localhost"
CELERY_REDIS_PORT = 6379
CELERY_REDIS_DB = 0

CELERY_SEND_TASK_ERROR_EMAILS = True
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_TASK_RESULT_EXPIRES = 172800  # 48 hours.
Run Code Online (Sandbox Code Playgroud)

使用这种配置,除了一件事之外,它似乎都有效:

使用django-celery,您可以在django admin中自动获得芹菜整合(整洁!),您可以检查所有未过期的任务的状态并安排新的任务等.

在admin的任务列表中,不显示任何值,表示所有值均为None.当我点击一个值时,我可以看到详细信息,所以它看起来确实正在被正确收集.这只是一个细节,但它让我很烦.

可能是因为它没有在列表中显示这些值,我该怎么做才能修复它?

提前致谢

编辑:截图

所以这里有一些截图,因为你可以看到像uuid等所有的值都是None,但它确实看到任务完成与否.在第二个屏幕截图中,您可以看到详细信息页面(在您单击任务后),此处它包含所有信息.

django-celery管理员任务列表不显示所有值 第二张图片:

显示所有值的任务的详细信息页面

Sim*_*ser 2

我也有这个。这似乎是 django-celery 中的一个错误。如果您希望修复此问题,您应该更新您的 django-celery 版本(已在django-celery 的此提交中修复)。

如果您更改以下内容(在djcelery.admin_utils函数中fixedwidth):

return """<span title="%s", style="font-size: %spt;\
                font-family: Menlo, Courier; ">%s</span>""" % (
    escape(val[:255]), pt, escape(shortval)).replace("|br/|", "<br/>")
Run Code Online (Sandbox Code Playgroud)

进入:

    return ("""<span title="%s", style="font-size: %spt;\
                    font-family: Menlo, Courier; ">%s</span>""" % (
        escape(val[:255]), pt, escape(shortval))).replace("|br/|", "<br/>")
Run Code Online (Sandbox Code Playgroud)

然后这些值就会出现在管理中。