我想让我的url仅在给定时接受可选参数。我无法将参数设置为可选/不捕获。
re_path(r'^users/(?:(?P<sort_by>\d+)/)?$', views.UserListView.as_view(), name='user_list'),
我希望此URL仅在提供给视图时才接受slug
字段。我怎样才能做到这一点?
显示错误
Reverse for 'user_list' with keyword arguments '{'sort_by': 'username'}' not found. 1 pattern(s) tried: ['admin/users/(?:(?P<sort_by>\\d+)/)?$']
当我通过sort_by ='username'
答案 0 :(得分:2)
您可以将网址保留为:
re_path(r'^users/$', views.UserListView.as_view(), name='user_list'),
然后在您的模板中使用
<a href="{% url 'user_list' %}?sort_by=username">Sort</a>
答案 1 :(得分:0)
我将创建2个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'),
然后,您可以调用适当的URL,并且视图中始终具有sort_by
值。