web-dev-qa-db-ja.com

DjangoテンプレートのURLからkwargsにアクセスする

Djangoテンプレートで名前付き引数の値に(URLから)アクセスできますか?

Djangoテンプレートから以下のthis_nameの値にアクセスできますか?

url(r'^area/(?P<this_name>[\w-]+)/$', views.AreaView.as_view(), name="area_list")

URLパス全体を取得して分割することはできましたが、既に名前が付いているため、それを行うための簡単な方法があるかどうかを確認したかったのです。

ビューからのコンテキストデータでそれを渡すことは代替手段かもしれませんが、テンプレートが何らかの形ですでにそれを持っていると思うので、私はそれを渡す必要があるかどうかはわかりませんか? request API で直接メソッドを見つけることができませんでした。

15
Anupam

ビューでは、URL argsおよびkwargsself.argsおよびself.kwargsとしてアクセスできます。

class MyView(View):
    def my_method(self):
        this_name = self.kwargs['this_name']

テンプレートの値にのみアクセスする場合は、ビューを変更する必要はありません。ベースの get_context_data メソッドは、ビューをviewとしてコンテキストに追加するので、次をテンプレートに追加できます。

{{ view.kwargs.this_name }}
23
Alasdair