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

时间:2010-02-06 13:53:22

标签: python django templates

{{profile.first-name.value}}

我的变量只是炒作...我希望我能做 first_name ,但很多变量都是连字符。 但是,由于这个问题,我无法在模板中显示我的变量。为什么呢?

2 个答案:

答案 0 :(得分:8)

连字符是Python中的运算符。如果您将所有连字符换成下划线,它会更好。

答案 1 :(得分:0)

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