10

私が頻繁に行っていることの 1 つは、文字列リテラルをパラメーターとしてテンプレート タグまたは関数に渡すことです。例えば:

{% url my-url 'my_param' %}

残念ながら、django テンプレート エンジンではこれができません。だから私は自分のビューコードでこれをたくさんやっていることに気づきました:

my_context_dict['MY_PARAM'] = 'my_param'

そして、私のビューコードで:

{% url my-url MY_PARAM %}

または、私が個人的に避けようとしている一連の URL マッピングを作成します。

Django テンプレートで文字列リテラルを使用することは可能ですか? それとも、よりエレガントなソリューションでしょうか? ここやドキュメントでは何も見ていません。

4

3 に答える 3

14

これは間違っているように感じますが、正しいです。

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

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

于 2009-05-12T19:30:19.697 に答える
12

一重引用符の代わりに二重引用符を使用します。

{% url my_view "my_param" %}
于 2009-05-12T19:29:11.323 に答える
1

非常に奇妙です-一重引用符を使用して文字列値を渡すdjangoプロジェクトがあり、それは問題なく機能します。

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

さらに調査すると、これはdjango1.5で変更されていることがわかりました。URLパターン名の前後にも引用符が必要になりました。

于 2013-03-13T05:53:49.037 に答える