使用“?:”将URL中提供的传递参数作为可选[非捕获]

时间:2019-08-28 06:37:27

标签: regex django django-templates django-views django-urls

我想使URL中传递的参数成为可选参数。我有这样的网址->

path('users/<optional_value>',views.users_list_or_detail, name='users_list_or_details'),

我不想使用2个不同的URL来提供列表或详细信息。如何将第二个<optional_value>设置为可选,以便无论如何不向视图提供<optional_value>,它会为我提供用户列表和用户详细信息(如果提供)?

我在互联网上浏览过的一个选项是

http://localhost:8000/users/?from=user_id

如何使用Django文档中urls.py中的?:使其可选?

2 个答案:

答案 0 :(得分:0)

在您的模板内(这将根据您的定义创建该网址)

<a href="{% url 'users_list_or_details' %}?from=user_id ">Link</a>

在您看来

if 'from' in request.kwargs:
    user_id = from

答案 1 :(得分:0)

在您看来,为您的网址变数提供默认参数56+,在这种情况下,请提供None,并检查参数是否可用。

类似的东西:

optional_value