2012-06-19 48 views
5

我的問題應該是相當簡單,更多的是感興趣的問題,而不是需要急需解決的問題。谷歌無法給我我正在尋找的答案,所以我希望你的專業知識能幫助我。我使用:Django和芹菜︰管理任務列表不顯示值

Django 1.4 
Celery 2.5.5 
Redis 2.4.10 (latest version on homebrew?) 

,我使用的follwing命令運行的一切:

​​

在我的settings.py我有以下的配置芹菜設置:

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. 

隨着這個配置似乎一切正常,除了一件事:

隨着django芹菜你一個在django admin(整潔!)中自動獲得芹菜集成,您可以檢查所有未過期任務的狀態並安排新任務等。

在admin的任務列表中,沒有顯示任何值,意思是所有的值都是無。當我點擊一個值時,我可以看到詳細信息,所以它看起來好像正在被正確收集。這只是一個細節,但它讓我非常惱火。

可能是因爲它沒有在列表中顯示這些值,我該如何解決它?

在此先感謝

編輯:截圖

因此,這裏有一些截圖,你可以看到像所有的值UUID等方面都無,但它確實看到羯羊任務完成與否。在第二個屏幕截圖中,您可以看到詳細信息頁面(點擊任務後),並在此處顯示所有信息。

The django-celery admin task list not displaying all values 和第二圖像:

The detail page of a task displaying all values

+0

你是什麼意思,「在管理員的任務列表中,沒有值顯示,意味着所有的值都是無」:你是否看到具有狀態的任務(例如STARTED,SUCCESS,FAILURE)?如果是這樣,那意味着芹菜攝像頭工作正常。你在說什麼價值? –

+0

請參閱我添加到帖子 –

回答

2

我有這一點。這似乎是django-celery中的一個bug。你應該更新你的django-芹菜版本,如果你想這是固定的(它已在django芹菜this commit固定)。

如果改變(在功能fixedwidthdjcelery.admin_utils)如下:

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

到:

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

則值會出現在管理。

+0

的圖片不幸的是,這不會是一個選項,因爲heroku不允許這樣做,並且git clone而不是pip install對於這個簡單的東西也不會做。希望2.6版本即將穩定! –

+0

您可以修改代碼以使其在當前版本中可用。 –

0

我也有同樣的錯誤。 關於更新admin_utils.py的例子雖然有一個小錯誤! 您需要做的替換爲:

在admin_utils頂部添加FIXEDWIDTH_STYLE。潘岳:

FIXEDWIDTH_STYLE = '''\ 
<span title="%s", style="font-size: %spt; \ 
font-family: Menlo, Courier; ">%s</span> \ 
''' 

,然後替換:

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

有了:

styled = FIXEDWIDTH_STYLE % (escape(val[:255]), pt,escape(shortval)) 
return styled.replace("|br/|", "<br/>") 

您可以在上面的鏈接GitHub的更清楚地看到它。 完美的作品! 乾杯!