2

私はDjango 1.4 チュートリアルに取り組んでいますが、ビュー レイヤーで URL が手作業で組み立てられていることに気付きました。

<form action="/polls/{{ poll.id }}/vote/" method="post">

等々。

ただし、コントローラー側では、URL は動的に生成されます。

return HttpResponseRedirect(reverse('polls.views.results', args=(p.id,)))

これについては、何かが少し矛盾しているようです。URL のプレフィックス (/pollsこの場合) は、アプリケーションの URLconf ではなく、プロジェクトの URLconf で決定されるため、この値をテンプレートにハードコーディングするのは賢明ではないようです。

URLconfを考慮してDjangoテンプレートでURLを生成するヘルパーまたはその他の方法はありますか?

4

1 に答える 1

4

はい、組み込みのurl-tag を使用して、パスのハードコーディングを回避できます。

例えば:

{% url 'myapp:view-name' %}
于 2012-11-30T16:51:55.137 に答える