在生产环境中反向解析URL的TypeError

时间:2013-03-12 16:33:36

标签: django django-templates

关于URL的反向解析,我只有一个生产错误。我的模板代码如下:

{% for result in result_list %}
<div class="result">

{% if grh_out %}
<form action= "{% url 'result_show' forloop.counter0 %}" method="post">
{% endif %}

...
{% endfor %}

Django开发服务器上的所有工作都没有错误。但是,当迁移到生产服务器时,行"{% url 'result_show' forloop.counter0 %}"会生成TypeError。我已在生产服务器上打开调试以尝试跟踪错误,并发现它出现在...django/core/urlresolvers.py in _reverse_with_prefix中:

candidate = (prefix_norm + result) % dict(zip(prefix_args + params, unicode_args))

局部变量如下:

val             0
pattern         'result_show/(\\d+)'
self            <RegexURLResolver 'expofit_web.urls' (None:None) ^/>
args            (0,)
_prefix         u'/~amartino/'
possibility     [(u'result_show/%(_0)s', [u'_0'])]
unicode_args    [u'0']
possibilities   [([(u'result_show/%(_0)s', [u'_0'])], 'result_show/(\\d+)', {})]
lookup_view     u'result_show'
prefix_norm     u'/%7Eamartino/'
prefix_args     []
params          [u'_0']
result          u'result_show/%(_0)s'
defaults            {}
kwargs          {} 

生产环境中有什么不同可能会影响这个?

1 个答案:

答案 0 :(得分:0)

这是bug in Django 1.5。该补丁应用于github上的主分支。