python - Django 2+:使用 PATH 的可选 URL,无需创建多个 URL
问题描述
我有这个网址
path('<slug>/thank_you/<user_id>', thank_you, name='thank_you'),
我希望<user_id>
是可选的,但我不想像这样制作 2 个网址
path('<slug>/thank_you', thank_you, name='thank_you'),
path('<slug>/thank_you/<user_id>', thank_you, name='thank_you2'),
我知道您可以使用正则表达式使其成为可选,但那是如果您使用 django <2(使用 url,而不是路径)
我如何获得这个?
解决方案
你可以用URL Query String
这个。例如:
# URL
path('/thank_you/', thank_you, name='thank_you'),
# View
def thank_you(request, slug):
user_id = request.GET.get('from')
# rest of the code
# Example route
http://localhost:8000/dummy-slug/thank_you/?from=dummy_user_id
推荐阅读
- javascript - .NET Core 3.1 中带有 Bootsrap、图像和 css 的 HTLM 到 PDF
- javascript - ckeditor - 如何从编辑器到 php 函数进行 onchange
- python - 如何在python的Threadpoolexecutor中运行异步函数
- html - 防止 Bootstrap 按钮中的 fontawesome 图标单独换行到下一行
- charts - ChartJS - 在同一日期具有多个值的图形
- google-sheets - 谷歌表格 - 将脚本分配给一个按钮,该按钮将根据第三个单元格信息将新数据从一个单元格粘贴到另一个单元格
- python - 并发运行相同的查询(每六分钟)锁定一个 PostgreSQL 表
- python - 烧瓶 | Heroku buildpack:odbc | 为 SQL Server 安装 ODBC 驱动程序 17 | Heroku buildpack-apt 上的错误
- python - 使用 SMOTE 平衡数据集和 ktrain 包
- android - Android Studio:未解决的参考:box_three_text