2017-11-24 20 views
0

私のdjangoテンプレートでorderddictを解析しようとしています。djangoテンプレート内のorderddictの解析に問題があります

これは、例えば、辞書です:

OrderedDict([ 
    (u'header-151', '"{u\'label\': u\'label\'}"'), 
    (u'input-1510215273074', '"{u\'label\': u\'Preferred Assignment Area\'}"'), 
    (u'input-1510215283971', '"{u\'label\': u\'Expected Salary\'}"'), 
    (u'input-1510215288135', '"{u\'label\': u\'Last Drawn Salary\'}"'), 
]) 

以上のことから、私はラベルの内容を取得したいと思います。私は成功したキーを取得することができるよ

{% for form in document.forms.all %} 
    {% for k,v in form.hdict.items %} 
     {% if 'header' not in k %} 
      {"key": {{k}}, "label": "{{v.label}}"}, 
     {% endif %} 
    {% endfor %} 
{% endfor %} 

ではなく、値の一部(ラベル):

これは、私は現在、テンプレート内のdictを通じてつもり方法です。

私はこれで私はジャンゴにはかなり新しいので、私を助けてくれることを願っています。ありがとう

+0

問題はあるというOrderedDict' 'の値'str'型です:' '{u'label ':指定された代入エリア}}' 'あなたはそれを{'' u'label ':u'Preferred Assignment Area'} 'にする必要があります。 –

答えて

0

v.labelは文字列です。あなたは、テンプレートのうち、そのロジックを維持する必要があり{{v.label}}

+0

こんにちは、あなたの答えを感謝しますが、私はまだラベルのための値を取得していないようです。 – fandomfox

+0

'' '{u \'ラベル\ ':u \'ラベル\ '} "''も文字列です。アポストロフィを削除して、それを代わりに辞表にします。 – danieltan95

0

"{{v.label}}"を変更し、それらが由来ビューまたはフォームのものの値の文字列デシリアライズ:

# forms.py 
import json 

class WhateverForm(forms.Form) # form class of document.forms 
    # ... 
    def clean_dict(self) 
     return {k: json.loads(v).get('label') for k, v in self.hdict.items() if 'header' not in k} 

# template 
{% for form in document.forms.all %} 
    {% for k, v in form.clean_dict.items %} 
     {"key": {{ k }}, "label": "{{ v }}"}, 
    {% endfor %} 
{% endfor %} 
関連する問題