从Django模板中的URL访问kwargs

Anu*_*pam 15 django django-templates django-urls

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

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

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

我可以获取整个URL路径并将其分解但是想要检查是否有直接的方法来执行此操作,因为它已经有了名称.

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

Ala*_*air 25

在视图中,可以访问网址argskwargsself.argsself.kwargs.

class MyView(View):
    def my_method(self):
        this_name = self.kwargs['this_name']
Run Code Online (Sandbox Code Playgroud)

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

{{ view.kwargs.this_name }}
Run Code Online (Sandbox Code Playgroud)

  • 如果您具有视图函数`def my_view(request,myvar,* args ** kwargs):`,则取决于变量是否包含在模板上下文中,例如,`return render(request,'mytemplate.html',{ 'myvar':myvar,'foo':kwargs.get('foo')})` (4认同)