首页 > 解决方案 > Django:如何将变量插入 path() kwargs

问题描述

我正在尝试将布尔标志传递给我的视图:

def lesson_detail_view(request, number, **kwargs):
    pass

该文档有一个传入 kwargs 的示例,但仅作为硬编码。

path('blog/<int:year>/', views.year_archive, {'foo': 'bar'})

我的问题是将变量放入 url 模式。我尝试以与路径变量与尖括号一起使用的方式插入变量,但它不起作用。

path('lesson-<number>/', views.lesson_detail_view, kwargs={'show_popup': '<show_popup>'}, name='lesson_detail'),

以下是我想要调用 url 的方式:

redirect("lesson:lesson_detail", number=1, show_popup=True,)

我在吠叫错误的树吗?我觉得这应该很简单,但我没有找到任何东西。

标签: djangodjango-urls

解决方案


您希望用户提供 <show_popup> 吗?如果是这样,您应该考虑使用 get 参数。
在视图中,您将使用

request.GET.get('show_popup', None)

如果要将 urls.py 文件中的变量放入视图中:

path('lesson-<number>/', views.lesson_detail_view, kwargs={'show_popup': show_popup}, name='lesson_detail')

推荐阅读