辞書を私のDjangoテンプレートに渡します、
辞書とテンプレートはこのようなものです-
lists[listid] = {'name': l.listname, 'docs': l.userdocs.order_by('-id')}
{% for k, v in lists.items %}
<ul><li>Count: {{ v.docs.count }}, First: {{ v.docs|first }}</li></ul>
{% endfor %}
docs
はuserdocs
タイプのリストです。つまり、インスタンスです。したがって、first
フィルターはこのインスタンスを返します。これからid
を抽出する必要があります。それ、どうやったら出来るの?
私は試した {{ v.docs|first }}.id
およびその他のさまざまな無益な裁判。
{% with %}
この種のもののテンプレートタグ。
{% with v.docs|first as first_doc %}{{ first_doc.id }}{% endwith %}
あなたはこれを試すことができます:
{{ v.docs.0 }}
お気に入り arr.0
インデックス(0
、1
、2
など)。
これが役立つかどうかわかりません。
必要なのはイテラブル(v.docs)の最初の値であり、別のカプセル化イテラブル(リスト)を反復処理しています。
カウントについても、同じことを行いますが、最初の要素についてです。v.docsを個別に繰り返し、内部ループを介して最初の値を取得します。
{% for doc in v.docs %}
{% if v.docs | first %}
<li>doc</li>
{% endif %}
{% endfor %}
注:最初のフィルターはdocではなくv.docsに適用されます。うん。それは別のループを含みます:(