说我有以下的网址映射到$passtome = resolve_kat(927);
function otherFunction ($passtome) {
#What you want to do...
}
:
TemplateView
我认为在模板视图中url(r'^path/(?P<var1>\d+)/(?P<var2>\d+)/$', TemplateView.as_view('a_view.html'))
我可以访问a_view.html
和var1
的值,因为它们被捕获并提取到命名参数中:
var2
但是,访问<!-- a_view.html -->
<p>var1 value = {{ var1 }}</p>
<p>var2 value = {{ var2 }}</p>
时,这些值为空。为什么?我怎么才能访问它们呢?我需要一个明确的观点吗?
答案 0 :(得分:1)
我认为这样的事情应该有用。
更改urls.py以使用命名视图:
url(r'^path/(?P<var1>\d+)/(?P<var2>\d+)/$', YourNamedView.as_view('a_view.html'))
创建一个TemplateView并让它抓住你的变量并将其添加到上下文中:
class YourNamedView(TemplateView):
template_name = 'a_view.html'
def get_context_data(self, **kwargs):
context = super(YourNamedView, self).get_context_data(**kwargs)
context.update({
'var1': self.kwargs.get('var1', None),
'var2': self.kwargs.get('var2', None),
})
return context
并在模板中:
<h1>{{ var1 }} {{ var2 }}</h1>
答案 1 :(得分:0)
从模板中,您可以访问代表已解析网址的ResolverMatch实例
<p>var1 value = {{ request.resolver_match.kwargs.var1 }}</p>
<p>var2 value = {{ request.resolver_match.kwargs.var2 }}</p>