2011-12-20 8 views
1

長い話が短いですforループ内のobjの値をカスタムテンプレートタグに引き込む方法があるかどうか不思議です。テンプレート内のforループ内のDjangoテンプレートのアクセス値

私は現在

{% for OBJ in OBJ_LIST %} 
{% TAG 'string_value' OBJ %} 
{% endfor %} 

トリックは私が手で持っている 'OBJ'

たforループ内の変数を登録しないか

obj = template.Variable(objname) 
obj = template.resolve_variable(objname, context) 

を介して実行時に

どんなタイプの回避策があれば好奇心が強いですか?

+0

明確にするために、これをループの外に引き出すと、それは機能しますか? –

+0

はい、コンテキスト内で宣言されたvarがある場合はうまく動作します - varの名前を渡すだけなので、 'modelInstance'とModelInstanceの文字列を取得します - オブジェクトパックを見て回る簡単な方法ですそれを維持しようとしていますDRY – Alvin

+0

数時間後にコードを確認して睡眠し、それがうまく機能するように管理しました。 – Alvin

答えて

3

はい、方法があります。私のタグはループでうまく動作します。テンプレートタグのどこかにエラーがあると思います。しかし、デバッグする代わりに、既存のフレームワークを使用してテンプレートタグ(thisまたはthisなど)を作成することをお勧めします。それは乾燥しており、十分にテストされており、あなたはそのようなエラーを出すことはできません。

+1

タグは完全にforループの外側で動作しますが、内部では宣言されていない新しいvarであっても何も表示されませんでした - あなたが投稿したリンクは、私が探していたものだけを提供すると言っています - ありがとう – Alvin

+1

@DrTyrsa私はそれらの存在を知らなかった..クールな豆 –

+0

私の@yugiの部分はクールな豆を使用するためだけにあなたのコメントをupvoteしたいと思いますが、私も同意します。 –

関連する問題