Python django-模板中仅返回第一个字符的元组?
我试图访问django模板中的元组,但由于某些原因,我只看到了第一个字符,我认为这可能是因为使用了。返回子字符串,所以我去掉了off,在它上面什么也不返回 上下文处理器.pyPython django-模板中仅返回第一个字符的元组?,python,django,Python,Django,我试图访问django模板中的元组,但由于某些原因,我只看到了第一个字符,我认为这可能是因为使用了。返回子字符串,所以我去掉了off,在它上面什么也不返回 上下文处理器.py from django.conf import settings def ProviderUrls(request): return { 'circuit_providers': settings.PROVIDER_CHOICES, } 设置.py #CONSTANTS PROVIDER_C
from django.conf import settings
def ProviderUrls(request):
return {
'circuit_providers': settings.PROVIDER_CHOICES,
}
设置.py
#CONSTANTS
PROVIDER_CHOICES = (
('KCOM','KCOM'),
('BT','BT'),
('EE','EE'),
('THREE','THREE'),
('TALK TALK','TALK TALK'),
)
模板
<div class="sidebar">
<h3>Management Menu</h3>
<ul>
{% for key, tuple in circuit_providers %}
<li><a href="{% url 'management:provider' tuple.0 %}">{{ tuple.0 }}</a></li>
{% endfor %}
</ul>
</div>
当您以这种方式迭代circuit_提供程序时:
{% for key, tuple in circuit_providers %}
...
{% endfor %}
解压每个内部元组,键变成KCOM,元组变成KCOM,然后键变成BT,元组变成BT,等等
当您执行{{tuple.0}}时,您基本上得到了字符串中的第一个字符,即K代表KCOM
要证明这一点,请参见:
>>> for key, tuple in PROVIDER_CHOICES:
... print(tuple)
...
KCOM
BT
EE
THREE
TALK TALK
>>> for key, tuple in PROVIDER_CHOICES:
... print(tuple[0])
...
K
B
E
T
T
相反,我认为你的意思是:
{% for key, tuple in circuit_providers %}
<li><a href="{% url 'management:provider' tuple %}">{{ tuple }}</a></li>
{% endfor %}