1

URL を元に戻すにはどうすればよいですか? ただし、テンプレート名が異なりますか? 私は特に使用する必要がありますurlresolvers.reverse

もう少し詳しく言うと:

ビューは 1 つありますが、アクセスできる URL は 2 つあります

(r'^url/$', 'view1', {'template1':'template1.html'}, 'access-url1'),
(r'^url_dynamic/$', 'view1', {'template1':'template_dynamic.html'}, 'url-dynamic'),

その場で変更したいかもしれないので、ビューで返すテンプレートを区別するコードを書きたくありません。したがって、たとえば呼び出し中にURLを変更する柔軟性が必要です

urlresolvers.reverse('view1', kwargs = {'template1':'template_dynamic.html'})
(which btw does not work throws noreversematch)

コピーview1view2て url-dynamic で呼び出すこともできますが、それは DRY に違反します。

4

2 に答える 2

1

これを達成するために本当にリバースを使用する必要がある場合は、テンプレート名を渡すために kwargs で何か卑劣なことをすることができます。

reverse() の関数シグネチャは次のようになります。

reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)

テンプレート名/文字列を(オプションの)引数として受け入れるには、ビュー関数が必要です。その後、あなたはただ

{% url my.view.function "this_is_a_template.html" %}
于 2009-10-16T11:39:52.520 に答える