从 Django 模板中的 URL 访问 kwargs

Access kwargs from a URL in a Django template

我可以在 Django 模板中访问命名参数(来自 URL)的值吗?

我可以从 Django 模板访问下面 this_name 的值吗?

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

我可以获得整个 URL 路径并将其分解,但想检查是否有直接的方法来做到这一点,因为它已经有了名称。

在视图的上下文数据中传递它可能是一种替代方法,但不确定我是否需要传递它,因为我猜模板已经以某种方式拥有它?但是在 request API 中找不到直接方法。

在视图中,您可以访问 URL argskwargs 作为 self.argsself.kwargs

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

如果您只想访问模板中的值,则无需在视图中进行任何更改。基本 get_context_data 方法将视图作为 view 添加到上下文中,因此您可以将以下内容添加到模板中:

{{ view.kwargs.this_name }}