3


0

Djangoテンプレートビューでハイフンを使用できないのはなぜですか?
{{profile.first-name.value}}

私の変数はhypehのみです…​私は* first_name *ができればいいのですが、多くの変数はハイフンです。 ただし、この問題のため、テンプレートに変数を表示できません。 Why?

2 Answer


8


ハイフンはPythonの演算子です。 すべてのハイフンをアンダースコアに交換すると、うまく機能します。


0


OrderedDict辞書タイプはハイフンをサポートしています:https://docs.python.org/2/library/collections.html#ordereddict-objects

これは、OrderedDictの実装の副作用のようです。 キー値のペアは実際にはセットとして渡されることに注意してください。 OrderedDictの実装では、セットで渡された「キー」を真のdictキーとして使用しないため、この問題を回避できます。

これは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