python - 我可以在 Django 模板上下文处理器中访问 url kwargs 吗?

标签 python django django-templates

urls.py

url(r'^(?i)(?P<slug>[a-zA-Z0-9_]+)$', views_search.index, name='articles'),

上下文处理器.py

def get_username(request, **kwargs):
    print kwargs
    slug = kwargs.get('slug')
    return {
    'slug': slug
    }

但是当我运行它时,它打印空字典并且没有任何内容返回到模板。我在设置中的模板上下文处理器中添加了它。我如何在这里访问 kwargs?

最佳答案

如果 url 被解析,ResolverMatch对象被设置为请求的属性:

def get_username(request):
    if hasattr(request, 'resolver_match'):
        slug = request.resolver_match.kwargs.get('slug')
        return {'slug': slug}
    return {}

关于python - 我可以在 Django 模板上下文处理器中访问 url kwargs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35392596/

相关文章:

python - 在python中,如何将两个列表列表相互划分?

python - 为什么instance.profile.save()

django-templates - Django 模板渲染

python - django admin static 服务于错误的 url

python - 函数内的函数次数未知

python - python 对象的属性在 help() 函数之前和之后表现不同

python - 使用排序列有效地从 Pandas 数据框中选择行

python - 在 Django 中获取查询集中的对象计数

python - 我的基于 Django 的项目偶尔停止加载 View (Django 1.6)

django - 有没有办法在 Django 模板中使 block 可选