如何在Django视图中使用request.path get_context_data?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Django视图中使用request.path get_context_data?相关的知识,希望对你有一定的参考价值。

我想在视图的get_context_data中使用URL的最后一部分。

例如:如果我有/ 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]可以构造字符串的[[list”。因此,当您输入['', '/foo']时将为/foo/bar。或['']表示/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

以上是关于如何在Django视图中使用request.path get_context_data?的主要内容,如果未能解决你的问题,请参考以下文章

如何在django视图函数中使用全局变量,对所有线程有效。

如何在 Django 视图中使用 celery 存储延迟调用的结果?

Django:如何在删除视图中使用 request.POST

如何在 django 的一个视图中使用多个表单

如何在 django 中进行复杂的搜索?使用视图还是模型?

如何在 Django 视图中使用 ajax POST 解析 json 数据