タプルをキーとして持つ辞書があります。例: {('tags','1'): 'name', ('name','first'):'rik', ('name','last'):'atee'}
たとえば、djangoで('name','first')の値を出力するにはどうすればよいですか? 私は dict.items.1 または dict.items.2 でそれを行うことができます - しかし、順序付けが問題になります。
Djangoテンプレート言語は、参照できる内容を意図的に制限しています。
たとえば、属性と辞書要素にアクセスするには、ドット演算子を使用する必要があります。つまり、参照するキーは文字列である必要があります。
ドキュメントから:
変数名は、任意の文字(AZ)、任意の数字(0-9)、アンダースコア(ただし、アンダースコアで始まらない)、またはドットで構成する必要があります。
https://docs.djangoproject.com/en/dev/ref/templates/api/#variables-and-lookups
オプションは、(a)ビューを使用してタプルキーを文字列形式に変更するか、(b)任意のキーで参照できる別のテンプレートエンジンを使用することです。
オプション(b)は、Djangoのテンプレート言語のスーパーセットとして設計されたDjangoのテンプレート言語ほど悪くはないので、(理論的には)すべての古いテンプレートが機能し、より多くの機能を利用できます。Jinjaテンプレート言語をチェックアウトすることをお勧めします。これには、探している機能があります。
ディクショナリ内の任意の値は、対応するキーによってアクセスできます
そう...
>>> foo = {('tags','1'): 'name', ('name','first'):'rik', ('name','last'):'atee'}
>>> foo[('name','first')]
'rik'
ただし、tuples-as-keys はおそらく混乱を招き、エラーが発生しやすくなり{"tags": ['name'], "first":'rik', "last":'atee'}
ます。