2009-05-12 1 views
6

自分自身がよくしていることの1つは、テンプレートタグや関数にパラメータとして文字列リテラルを渡すことです。Djangoテンプレートのテンプレートタグへのパラメータとしての文字列リテラルの使用

{% url my-url 'my_param' %} 

残念ながら、djangoテンプレートエンジンではこれを行えません。

my_context_dict['MY_PARAM'] = 'my_param' 

、その後、私の見解コードで:だから私は自分自身は、この私のビューのコードで多くのことをやって見つける

{% url my-url MY_PARAM %} 

それとも、私が個人的に回避しようと、URLマッピング、一連を作成します。

Djangoテンプレートで文字列リテラルを使用することはできますか?あるいはより洗練されたソリューションでしょうか?私はここやドキュメンテーションで何も見たことがありません。

答えて

12

これは間違って感じているが、権利です。

<a href="{% url someting "param1" "param2" %}">text</a> 

ネストされた""はうまくいかないようです。彼らはそうする。 Django {% %}の素材は、周囲のコンテキストに関係なくHTMLから単純に引き出されます。したがって、 "複製された" "は実際には全く複製されません。

+0

url.py urlpatternsではどのような変更が必要ですか? – jencko

12

二重引用符を使用の代わりに、単一引用符:

{% url my_view "my_param" %} 
1

非常にwierd - 私は文字列の値を渡すために単一引用符を使用し、ちょうどいい機能djangoプロジェクトを持っています。

<a href="{% url categories 'vendor' %}"</a> 
<a href="{% url categories 'crew' %}"</a> 

さらなる調査では、this has changed in django 1.5が判明しました。これで、URLパターン名の前後でも引用符が必要になります。

関連する問題