渲染时捕获的键错误:u'分钟'

  • 本文关键字:错误 分钟 django celery
  • 更新时间 :
  • 英文 :


当我试图访问/admin/dj芹菜/taskstate/在django应用程序它返回这个错误如何解决这个错误

  Template error:
  In template c:python27libsite-packagesdjangocontribadmintemplatesadmin   change_list.html, error at line 95
  Caught KeyError while rendering: u'minutes'
  85 :         {% endif %}
  86 :       {% endblock %}
  87 :       
  88 :       <form id="changelist-form" action="" method="post"{% if   cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %}>{% csrf_token %}
  89 :       {% if cl.formset %}
  90 :         {{ cl.formset.management_form }}
  91 :       {% endif %}
  92 : 
  93 :       {% block result_list %}
  94 :           {% if action_form and actions_on_top and cl.full_result_count %}{%   admin_actions %}{% endif %}

第95行错误!!

  95 :            {% result_list cl %} 
  96 :           {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %}
  97 :       {% endblock %}
  98 :       {% block pagination %}{% pagination cl %}{% endblock %}
  99 :       </form>
  100 :     </div>
  101 :   </div>
  102 : {% endblock %}

这个unicode错误在Django中很常见。您需要将从后端发送的内容转换为字符串,或者在前端解析它。在后端做str(x)的值,是得到的错误在前端。在你的例子中是minutes

问题是pypi版本中有一个bug已经在github中修复了。在当前的pypi包中(格式在第64行humanize.py中):

return ungettext(
    _('{minutes} minute ago'),
    _('{minutes} minutes ago'), minutes
).format(minutes)

这个不行,它必须是{0}而不是{minutes}。在github的主分支中已经修复:

return ungettext(
    _('{minutes} minute ago'),
    _('{minutes} minutes ago'), minutes
).format(minutes=minutes)

我建议只使用github版本,你可以像这样安装最新的提交:

pip install -e "git+git://github.com/celery/django-celery.git@b6eeb8952594a7f8073901db613801f2ac544cd7#egg=django-celery"

如果你没有提交id,它将总是安装当前的头,但它更安全的是使用一个特定的提交,以防有突破性的变化

相关内容

  • 没有找到相关文章

最新更新