为什么我在Django模板视图中无法使用连字符?
{{profile.first-name.value}}
我的变量都是带连字符的...我希望能用first_name,但是很多变量都是连字符的。可是因为这个问题,我无法在模板中显示我的变量。为什么呢?
2 个回答
-1
OrderedDict 字典类型支持使用连字符(-):https://docs.python.org/2/library/collections.html#ordereddict-objects
这似乎是 OrderedDict 实现过程中的一个副作用。注意下面的键值对实际上是作为集合传入的。我敢打赌,OrderedDict 的实现并没有把集合中传入的“键”当作真正的字典键来使用,因此避免了这个问题。
由于这是 OrderedDict 实现过程中的一个副作用,所以你可能不想完全依赖它。但它确实可以工作。
from collections import OrderedDict
my_dict = OrderedDict([
('has-dash', 'has dash value'),
('no dash', 'no dash value')
])
print( 'has-dash: ' + my_dict['has-dash'] )
print( 'no dash: ' + my_dict['no dash'] )
结果:
has-dash: has dash value
no dash: no dash value
10
在Python中,连字符(-)是一个运算符。如果把所有的连字符换成下划线(_),效果会更好。