2012-06-19 8 views
5

Mi problema debería ser bastante simple y es más una cuestión de interés que algo que necesita ser corregido desesperadamente. Google no pudo darme la respuesta que estaba buscando, así que espero que su experiencia me pueda ayudar. Estoy usando:Django y apio: la lista de tareas de administración no muestra valores

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

Y estoy corriendo todo utilizando los comandos siguientes;

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 

En mi settings.py yo he dado la siguiente configuración de Apio:

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. 

Con esta configuración parece funcionar, excepto una cosa:

Con django-apio usted Obtenga automáticamente la integración de apio en el administrador de django (¡perfecto!), puede verificar el estado de todas sus tareas que no han expirado y programar nuevas tareas, etc.

En la lista de tareas del administrador, no se muestran valores, lo que significa todos los valores son Ninguno. cuando hago clic en un valor, puedo ver los detalles sin embargo, por lo que parece que se recopilan correctamente. Es solo un detalle, pero me molesta mucho.

¿Cuál podría ser el motivo por el que no muestra esos valores en la lista y qué podría hacer para solucionarlo?

Gracias de antemano

Editar: Imágenes

Así que aquí hay algunas capturas de pantalla, como se puede ver todos los valores como UUID etc. hay ninguno pero sí ver wether la tarea ha terminado o no . En la segunda captura de pantalla puede ver la página de detalles (después de hacer clic en una tarea) y aquí tiene toda la información.

The django-celery admin task list not displaying all values y la segunda imagen:

The detail page of a task displaying all values

+0

¿Qué quiere decir con "En la lista de tareas en el administrador, no se muestran valores, lo que significa que todos los valores son Ninguno": ¿ve tareas con estados (como INICIADO, ÉXITO, FALLO)? Si es así, eso significa que apiocam está funcionando correctamente. ¿De qué valores estás hablando? –

+0

por favor vea las imágenes que agregué a la publicación –

Respuesta

2

tengo esto también. Parece ser un error en django-apio. Debes actualizar tu versión de django-apio si quieres que se solucione (se ha solucionado en this commit en django-apio).

Si cambia la siguiente (en djcelery.admin_utils en la función fixedwidth):

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

en:

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

entonces los valores aparecen en el admin.

+0

Desafortunadamente eso no será una opción ya que heroku no permite esto, y hacer clon en lugar de instalar pip para algo así de simple tampoco lo hará. Espero que la versión 2.6 se estabilice pronto! –

+0

Puede parchear el código aunque para que funcione en la versión actual. –

0

Tuve el mismo error también. ¡El ejemplo dado sobre la actualización de admin_utils.py tiene un ligero error! Los reemplazos que necesita realizar son:

Agregue FIXEDWIDTH_STYLE en la parte superior de admin_utils.PY:

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

Y luego vuelva a colocar:

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

Con:

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

Se puede ver más claramente en el enlace github anteriormente. ¡Funciona perfecto! ¡Salud!

Cuestiones relacionadas