Python 使URL接受作为可选参数的参数。非捕获

Python 使URL接受作为可选参数的参数。非捕获,python,regex,django,django-views,django-urls,Python,Regex,Django,Django Views,Django Urls,我想让我的url仅在给定时接受可选参数。我无法将参数设置为可选/非捕获 re_path(r'^users/(?:(?P<sort_by>\d+)/)?$', views.UserListView.as_view(), name='user_list'), 当我通过sort\u by='username'时,您可以将url保留到: re_path(r'^users/$', views.UserListView.as_view(), name='user_list'), 然后在模

我想让我的url仅在给定时接受可选参数。我无法将参数设置为可选/非捕获


re_path(r'^users/(?:(?P<sort_by>\d+)/)?$', views.UserListView.as_view(), name='user_list'),


当我通过sort\u by='username'

时,您可以将url保留到:

re_path(r'^users/$', views.UserListView.as_view(), name='user_list'),
然后在模板中使用

   <a href="{% url 'user_list' %}?sort_by=username">Sort</a>

我将创建两个URL:

path('users/<str:sort_by>', views.UserListView.as_view(), name='user_list_by_user'),
path('users', views.UserListView.as_view(), {'sort_by': 'default_sort_you_use'}, name='user_list'),
path('users/',views.UserListView.as_view(),name='user_list_by_user'),
路径('users',views.UserListView.as_view(),{'sort_by':'default_sort_you_use'},name='user_list'),

然后,您可以调用相应的URL,并在视图中始终具有一个
排序依据
值。

请参见您看到的内容。无法理解。你能帮忙吗?好的,试试
r'^users/(?P[^/]*)”
r'^users(?:/(?P[^/]+)?
我只想在我的url中添加[a-z]和u]。像sort_by=is_superuserSo一样,
r'^users(?:/(?P[a-z]+)?
?非常感谢。成功了。你能告诉我如何使用它对数据进行排序吗?看起来很凌乱,但它正在工作。谢谢你。我用的是slug。如果我及格了会有区别吗?当然,你可以用
path('users/<str:sort_by>', views.UserListView.as_view(), name='user_list_by_user'),
path('users', views.UserListView.as_view(), {'sort_by': 'default_sort_you_use'}, name='user_list'),