首页 > 解决方案 > 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,而不是路径)

我如何获得这个?

标签: pythondjangourl

解决方案


你可以用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

推荐阅读