2010-02-06 60 views
3
{{profile.first-name.value}} 

我的變量是hypeh only ...我希望我能做first_name,但許多變量都是連字符。 但是,由於這個問題,我無法在模板中顯示我的變量。爲什麼?爲什麼我不能在Django模板視圖中使用連字符?

+0

在什麼編程語言,這是真的, 「許多變量是連字符」?沒有我能想到的。 – 2010-02-06 16:16:32

+0

Lisp,CSS ...我已經用完了。 – Skilldrick 2010-02-07 13:32:58

+0

您也可以通過django模板訪問字典鍵。 S default默認爲連字符,所以如果你有一個slu dictionary字典,你正在嘗試訪問一個,這是不可能在一個模板... – hazmat 2013-10-08 21:33:53

回答

8

連字符是Python中的一個運算符。如果將所有連字符換成下劃線,它會更好。

+6

我認爲「會更好」應該是「將無法在*所有*除非」。 – 2010-02-06 16:15:47

0

OrderedDict字典類型支持連字符: https://docs.python.org/2/library/collections.html#ordereddict-objects

這似乎是OrderedDict執行的副作用。注意下面的關鍵值對實際上是作爲集合傳入的。我敢打賭,OrderedDict的實現不會使用集合中傳遞的「key」作爲真正的詞典關鍵,從而避免了這個問題。

由於這是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 
相關問題