为什么我在Django模板视图中无法使用连字符?

5 投票
2 回答
3903 浏览
提问于 2025-04-15 18:58
{{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中,连字符(-)是一个运算符。如果把所有的连字符换成下划线(_),效果会更好。

撰写回答