2012-06-19 29 views
5

Mój problem powinien być dość prosty i jest bardziej interesujący niż coś, co należy rozpaczliwie naprawić. Google nie udzielił mi odpowiedzi, której szukałem, więc mam nadzieję, że Twoja wiedza może mi pomóc. Używam:Django i Seler: lista zadań administratora nie wyświetla wartości

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

I używam wszystkiego używając follwing polecenia:

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 

W moim settings.py mam następujący konfiguracji ustalonej dla Seler:

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. 

Z Taka konfiguracja to wszystko wydaje się działać, z wyjątkiem jednej rzeczy:

Z django selera Państwo automatycznie uzyskasz integrację z selerem w administratorze django (schludny!), możesz sprawdzić status wszystkich zadań, które nie wygasły i zaplanować nowe zadania itp.

Na liście zadań w panelu administracyjnym nie są wyświetlane żadne wartości, co oznacza wszystkie wartości to None. kiedy klikam na wartość, widzę szczegóły, więc wygląda na to, że są zbierane poprawnie. To tylko szczegół, ale bardzo mnie to denerwuje.

Co może być powodem, że nie jest wyświetlanie tych wartości na liście i co mogę zrobić, aby to naprawić?

góry dzięki

EDIT: Screeny

Więc oto kilka screenów, jak widać wszystkie wartości są jak UUID itd. Żaden jednak nie widzi pogoda zadanie zostało zakończone lub nie . Na drugim zrzucie ekranu możesz zobaczyć stronę szczegółów (po kliknięciu na zadanie) i tutaj ma wszystkie informacje.

The django-celery admin task list not displaying all values I drugi obraz:

The detail page of a task displaying all values

+0

Co masz na myśli z „Na liście zadań w admin wyświetlane są żadne wartości, czyli wszystkie wartości są None”: widzisz zadań z państw (takich jak uruchomiony, sukces, awarii)? Jeśli tak, oznacza to, że celerycam działa poprawnie. Jakie wartości mówisz? –

+0

proszę zobaczyć obrazy dodałem do postu –

Odpowiedz

2

mam to za dobrze. Wygląda na to, że jest to błąd w django-selekcji. Powinieneś zaktualizować swoją wersję django-selekcji, jeśli chcesz to naprawić (zostało to naprawione w this commit w django-selekcji).

Jeżeli zmienisz następujące (w djcelery.admin_utils w funkcji fixedwidth):

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

do:

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

wówczas wartości są wyświetlane w panelu administracyjnym.

+0

niestety to nie będzie opcja od Heroku nie pozwala na to, a do git clone zamiast pip zainstalować czegoś to proste nie zrobi albo. Mam nadzieję, że wydanie 2.6 będzie stabilne już wkrótce! –

+0

Możesz monkeypatch kodu, aby działał w bieżącej wersji. –

0

Miałem ten sam błąd. Przykład podany przy aktualizacji admin_utils.py ma jednak niewielki błąd! Zastępstwa, których potrzebujesz, to:

Dodaj FIXEDWIDTH_STYLE u góry admin_utils.py:

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

A potem wymienić:

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

Z:

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

Widać to wyraźniej w linku github powyżej. Działa idealnie! Pozdrawiam!

Powiązane problemy