我想在视图中使用get_context_data网址的最后一部分。
例如:如果我有/foo/bar,我想在视图中的变量中获取/bar。
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx["url"] = request.path.split('/')[:-1]
return ctx
您可以使用 self.request
访问请求对象。因此,您可以在此处通过以下方式实现这一点:
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['url'] = self.request.path.split('/')[:-1]
return ctx
请注意,通过使用 [:-1]
可以构造字符串列表。所以当你输入/foo/bar
时它会['', '/foo']
.或['']
用于/foo
,或['', '/foo', '/bar']
用于/foo/bar/qux
。
您可能希望在此处使用.rsplit(..)
:
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['url'] = self.request.path.rsplit('/', 1)[0]
return ctx