当我试图访问/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,它将总是安装当前的头,但它更安全的是使用一个特定的提交,以防有突破性的变化