是否可以使用相同视图的多个网址模式?

时间:2018-04-04 02:56:52

标签: django

我有一个应用程序,显示"问题"的列表。主urls.py文件发送/发出/发送到"中的urls.py文件"应用

urlpatterns = [
    path('', RedirectView.as_view(url='/issues/')),
    path('admin/', admin.site.urls),
    path('issues/', include('issues.urls')),
]

在app app的urls.py文件中,我有:

path('', views.IssueListView.as_view(), name='issue-list'),

调用IssueListView,它是一个通用的ListView视图:

class IssueListView(generic.ListView):
    model = Issue

现在,我想添加一个带有链接的侧边栏菜单,用户可以点击这些链接按类别对问题列表进行排序。我理解我可以重写IssueListView的get_queryset()方法来接受一个kwarg,只是加载所有问题,如果缺少kwarg(用if语句检查kwarg的存在,对吧?),但我我想要做到这一点我需要有两个urlpatterns指向相同的视图,如:

path('', views.IssueListView.as_view(), name='issue-list'),
path('<category>', views.IssueListView.as_view(), name='issue-category-list'),

但我想知道这是否是正常的&#34; Django方式&#34;这样做。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您已指定,则可以对url pattern使用相同的视图。这没有错。

path('', views.IssueListView.as_view(), name='issue-list'),
path('<category>', views.IssueListView.as_view(), name='issue-category-list'),