diff options
author | Sjoerd Job Postmus <sjoerdjob@sjec.nl> | 2016-10-20 19:29:04 +0200 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2017-09-20 18:04:42 -0400 |
commit | df41b5a05d4e00e80e73afe629072e37873e767a (patch) | |
tree | baaf71ae695e2d3af604ea0d663284cb406c71e4 /tests/generic_views | |
parent | c4c128d67c7dc2830631c6859a204c9d259f1fb1 (diff) | |
download | django-df41b5a05d4e00e80e73afe629072e37873e767a.tar.gz |
Fixed #28593 -- Added a simplified URL routing syntax per DEP 0201.
Thanks Aymeric Augustin for shepherding the DEP and patch review.
Thanks Marten Kenbeek and Tim Graham for contributing to the code.
Thanks Tom Christie, Shai Berger, and Tim Graham for the docs.
Diffstat (limited to 'tests/generic_views')
-rw-r--r-- | tests/generic_views/urls.py | 432 |
1 files changed, 178 insertions, 254 deletions
diff --git a/tests/generic_views/urls.py b/tests/generic_views/urls.py index 209ce2285f..b8ba5762c4 100644 --- a/tests/generic_views/urls.py +++ b/tests/generic_views/urls.py @@ -1,6 +1,6 @@ -from django.conf.urls import url from django.contrib.auth import views as auth_views from django.contrib.auth.decorators import login_required +from django.urls import path, re_path from django.views.decorators.cache import cache_page from django.views.generic import TemplateView @@ -9,288 +9,212 @@ from .models import Book urlpatterns = [ # TemplateView - url(r'^template/no_template/$', - TemplateView.as_view()), - url(r'^template/login_required/$', - login_required(TemplateView.as_view())), - url(r'^template/simple/(?P<foo>\w+)/$', - TemplateView.as_view(template_name='generic_views/about.html')), - url(r'^template/custom/(?P<foo>\w+)/$', - views.CustomTemplateView.as_view(template_name='generic_views/about.html')), - url(r'^template/content_type/$', - TemplateView.as_view(template_name='generic_views/robots.txt', content_type='text/plain')), - - url(r'^template/cached/(?P<foo>\w+)/$', - cache_page(2.0)(TemplateView.as_view(template_name='generic_views/about.html'))), - url(r'^template/extra_context/$', - TemplateView.as_view(template_name='generic_views/about.html', extra_context={'title': 'Title'})), + path('template/no_template/', TemplateView.as_view()), + path('template/login_required/', login_required(TemplateView.as_view())), + path('template/simple/<foo>/', TemplateView.as_view(template_name='generic_views/about.html')), + path('template/custom/<foo>/', views.CustomTemplateView.as_view(template_name='generic_views/about.html')), + path( + 'template/content_type/', + TemplateView.as_view(template_name='generic_views/robots.txt', content_type='text/plain'), + ), + path( + 'template/cached/<foo>/', + cache_page(2.0)(TemplateView.as_view(template_name='generic_views/about.html')), + ), + path( + 'template/extra_context/', + TemplateView.as_view(template_name='generic_views/about.html', extra_context={'title': 'Title'}), + ), # DetailView - url(r'^detail/obj/$', - views.ObjectDetail.as_view()), - url(r'^detail/artist/(?P<pk>[0-9]+)/$', - views.ArtistDetail.as_view(), - name="artist_detail"), - url(r'^detail/author/(?P<pk>[0-9]+)/$', - views.AuthorDetail.as_view(), - name="author_detail"), - url(r'^detail/author/bycustompk/(?P<foo>[0-9]+)/$', - views.AuthorDetail.as_view(pk_url_kwarg='foo')), - url(r'^detail/author/byslug/(?P<slug>[\w-]+)/$', - views.AuthorDetail.as_view()), - url(r'^detail/author/bycustomslug/(?P<foo>[\w-]+)/$', - views.AuthorDetail.as_view(slug_url_kwarg='foo')), - url(r'^detail/author/bypkignoreslug/(?P<pk>[0-9]+)-(?P<slug>[\w-]+)/$', - views.AuthorDetail.as_view()), - url(r'^detail/author/bypkandslug/(?P<pk>[0-9]+)-(?P<slug>[\w-]+)/$', - views.AuthorDetail.as_view(query_pk_and_slug=True)), - url(r'^detail/author/(?P<pk>[0-9]+)/template_name_suffix/$', - views.AuthorDetail.as_view(template_name_suffix='_view')), - url(r'^detail/author/(?P<pk>[0-9]+)/template_name/$', - views.AuthorDetail.as_view(template_name='generic_views/about.html')), - url(r'^detail/author/(?P<pk>[0-9]+)/context_object_name/$', - views.AuthorDetail.as_view(context_object_name='thingy')), - url(r'^detail/author/(?P<pk>[0-9]+)/custom_detail/$', - views.AuthorCustomDetail.as_view()), - url(r'^detail/author/(?P<pk>[0-9]+)/dupe_context_object_name/$', - views.AuthorDetail.as_view(context_object_name='object')), - url(r'^detail/page/(?P<pk>[0-9]+)/field/$', - views.PageDetail.as_view()), - url(r'^detail/author/invalid/url/$', - views.AuthorDetail.as_view()), - url(r'^detail/author/invalid/qs/$', - views.AuthorDetail.as_view(queryset=None)), - url(r'^detail/nonmodel/1/$', - views.NonModelDetail.as_view()), - url(r'^detail/doesnotexist/(?P<pk>[0-9]+)/$', - views.ObjectDoesNotExistDetail.as_view()), + path('detail/obj/', views.ObjectDetail.as_view()), + path('detail/artist/<int:pk>/', views.ArtistDetail.as_view(), name='artist_detail'), + path('detail/author/<int:pk>/', views.AuthorDetail.as_view(), name='author_detail'), + path('detail/author/bycustompk/<foo>/', views.AuthorDetail.as_view(pk_url_kwarg='foo')), + path('detail/author/byslug/<slug>/', views.AuthorDetail.as_view()), + path('detail/author/bycustomslug/<foo>/', views.AuthorDetail.as_view(slug_url_kwarg='foo')), + path('detail/author/bypkignoreslug/<int:pk>-<slug>/', views.AuthorDetail.as_view()), + path('detail/author/bypkandslug/<int:pk>-<slug>/', views.AuthorDetail.as_view(query_pk_and_slug=True)), + path('detail/author/<int:pk>/template_name_suffix/', views.AuthorDetail.as_view(template_name_suffix='_view')), + path( + 'detail/author/<int:pk>/template_name/', + views.AuthorDetail.as_view(template_name='generic_views/about.html'), + ), + path('detail/author/<int:pk>/context_object_name/', views.AuthorDetail.as_view(context_object_name='thingy')), + path('detail/author/<int:pk>/custom_detail/', views.AuthorCustomDetail.as_view()), + path('detail/author/<int:pk>/dupe_context_object_name/', views.AuthorDetail.as_view(context_object_name='object')), + path('detail/page/<int:pk>/field/', views.PageDetail.as_view()), + path(r'detail/author/invalid/url/', views.AuthorDetail.as_view()), + path('detail/author/invalid/qs/', views.AuthorDetail.as_view(queryset=None)), + path('detail/nonmodel/1/', views.NonModelDetail.as_view()), + path('detail/doesnotexist/<pk>/', views.ObjectDoesNotExistDetail.as_view()), # FormView - url(r'^contact/$', - views.ContactView.as_view()), - url(r'^late-validation/$', - views.LateValidationView.as_view()), + path('contact/', views.ContactView.as_view()), + path('late-validation/', views.LateValidationView.as_view()), # Create/UpdateView - url(r'^edit/artists/create/$', - views.ArtistCreate.as_view()), - url(r'^edit/artists/(?P<pk>[0-9]+)/update/$', - views.ArtistUpdate.as_view()), - - url(r'^edit/authors/create/naive/$', - views.NaiveAuthorCreate.as_view()), - url(r'^edit/authors/create/redirect/$', - views.NaiveAuthorCreate.as_view(success_url='/edit/authors/create/')), - url(r'^edit/authors/create/interpolate_redirect/$', - views.NaiveAuthorCreate.as_view(success_url='/edit/author/{id}/update/')), - url(r'^edit/authors/create/interpolate_redirect_nonascii/$', - views.NaiveAuthorCreate.as_view(success_url='/%C3%A9dit/author/{id}/update/')), - url(r'^edit/authors/create/restricted/$', - views.AuthorCreateRestricted.as_view()), - url(r'^[eé]dit/authors/create/$', - views.AuthorCreate.as_view()), - url(r'^edit/authors/create/special/$', - views.SpecializedAuthorCreate.as_view()), - - url(r'^edit/author/(?P<pk>[0-9]+)/update/naive/$', - views.NaiveAuthorUpdate.as_view()), - url(r'^edit/author/(?P<pk>[0-9]+)/update/redirect/$', - views.NaiveAuthorUpdate.as_view(success_url='/edit/authors/create/')), - url(r'^edit/author/(?P<pk>[0-9]+)/update/interpolate_redirect/$', - views.NaiveAuthorUpdate.as_view(success_url='/edit/author/{id}/update/')), - url(r'^edit/author/(?P<pk>[0-9]+)/update/interpolate_redirect_nonascii/$', - views.NaiveAuthorUpdate.as_view(success_url='/%C3%A9dit/author/{id}/update/')), - url(r'^[eé]dit/author/(?P<pk>[0-9]+)/update/$', - views.AuthorUpdate.as_view()), - url(r'^edit/author/update/$', - views.OneAuthorUpdate.as_view()), - url(r'^edit/author/(?P<pk>[0-9]+)/update/special/$', - views.SpecializedAuthorUpdate.as_view()), - url(r'^edit/author/(?P<pk>[0-9]+)/delete/naive/$', - views.NaiveAuthorDelete.as_view()), - url(r'^edit/author/(?P<pk>[0-9]+)/delete/redirect/$', - views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/')), - url(r'^edit/author/(?P<pk>[0-9]+)/delete/interpolate_redirect/$', - views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/?deleted={id}')), - url(r'^edit/author/(?P<pk>[0-9]+)/delete/interpolate_redirect_nonascii/$', - views.NaiveAuthorDelete.as_view(success_url='/%C3%A9dit/authors/create/?deleted={id}')), - url(r'^edit/author/(?P<pk>[0-9]+)/delete/$', - views.AuthorDelete.as_view()), - url(r'^edit/author/(?P<pk>[0-9]+)/delete/special/$', - views.SpecializedAuthorDelete.as_view()), + path('edit/artists/create/', views.ArtistCreate.as_view()), + path('edit/artists/<int:pk>/update/', views.ArtistUpdate.as_view()), + + path('edit/authors/create/naive/', views.NaiveAuthorCreate.as_view()), + path('edit/authors/create/redirect/', views.NaiveAuthorCreate.as_view(success_url='/edit/authors/create/')), + path( + 'edit/authors/create/interpolate_redirect/', + views.NaiveAuthorCreate.as_view(success_url='/edit/author/{id}/update/'), + ), + path( + 'edit/authors/create/interpolate_redirect_nonascii/', + views.NaiveAuthorCreate.as_view(success_url='/%C3%A9dit/author/{id}/update/'), + ), + path('edit/authors/create/restricted/', views.AuthorCreateRestricted.as_view()), + re_path('^[eé]dit/authors/create/$', views.AuthorCreate.as_view()), + path('edit/authors/create/special/', views.SpecializedAuthorCreate.as_view()), + + path('edit/author/<int:pk>/update/naive/', views.NaiveAuthorUpdate.as_view()), + path( + 'edit/author/<int:pk>/update/redirect/', + views.NaiveAuthorUpdate.as_view(success_url='/edit/authors/create/') + ), + path( + 'edit/author/<int:pk>/update/interpolate_redirect/', + views.NaiveAuthorUpdate.as_view(success_url='/edit/author/{id}/update/') + ), + path( + 'edit/author/<int:pk>/update/interpolate_redirect_nonascii/', + views.NaiveAuthorUpdate.as_view(success_url='/%C3%A9dit/author/{id}/update/'), + ), + re_path('^[eé]dit/author/(?P<pk>[0-9]+)/update/$', views.AuthorUpdate.as_view()), + path('edit/author/update/', views.OneAuthorUpdate.as_view()), + path('edit/author/<int:pk>/update/special/', views.SpecializedAuthorUpdate.as_view()), + path('edit/author/<int:pk>/delete/naive/', views.NaiveAuthorDelete.as_view()), + path( + 'edit/author/<int:pk>/delete/redirect/', + views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/'), + ), + path( + 'edit/author/<int:pk>/delete/interpolate_redirect/', + views.NaiveAuthorDelete.as_view(success_url='/edit/authors/create/?deleted={id}') + ), + path( + 'edit/author/<int:pk>/delete/interpolate_redirect_nonascii/', + views.NaiveAuthorDelete.as_view(success_url='/%C3%A9dit/authors/create/?deleted={id}') + ), + path('edit/author/<int:pk>/delete/', views.AuthorDelete.as_view()), + path('edit/author/<int:pk>/delete/special/', views.SpecializedAuthorDelete.as_view()), # ArchiveIndexView - url(r'^dates/books/$', - views.BookArchive.as_view()), - url(r'^dates/books/context_object_name/$', - views.BookArchive.as_view(context_object_name='thingies')), - url(r'^dates/books/allow_empty/$', - views.BookArchive.as_view(allow_empty=True)), - url(r'^dates/books/template_name/$', - views.BookArchive.as_view(template_name='generic_views/list.html')), - url(r'^dates/books/template_name_suffix/$', - views.BookArchive.as_view(template_name_suffix='_detail')), - url(r'^dates/books/invalid/$', - views.BookArchive.as_view(queryset=None)), - url(r'^dates/books/paginated/$', - views.BookArchive.as_view(paginate_by=10)), - url(r'^dates/books/reverse/$', - views.BookArchive.as_view(queryset=Book.objects.order_by('pubdate'))), - url(r'^dates/books/by_month/$', - views.BookArchive.as_view(date_list_period='month')), - url(r'^dates/booksignings/$', - views.BookSigningArchive.as_view()), - url(r'^dates/books/sortedbyname/$', - views.BookArchive.as_view(ordering='name')), - url(r'^dates/books/sortedbynamedec/$', - views.BookArchive.as_view(ordering='-name')), + path('dates/books/', views.BookArchive.as_view()), + path('dates/books/context_object_name/', views.BookArchive.as_view(context_object_name='thingies')), + path('dates/books/allow_empty/', views.BookArchive.as_view(allow_empty=True)), + path('dates/books/template_name/', views.BookArchive.as_view(template_name='generic_views/list.html')), + path('dates/books/template_name_suffix/', views.BookArchive.as_view(template_name_suffix='_detail')), + path('dates/books/invalid/', views.BookArchive.as_view(queryset=None)), + path('dates/books/paginated/', views.BookArchive.as_view(paginate_by=10)), + path('dates/books/reverse/', views.BookArchive.as_view(queryset=Book.objects.order_by('pubdate'))), + path('dates/books/by_month/', views.BookArchive.as_view(date_list_period='month')), + path('dates/booksignings/', views.BookSigningArchive.as_view()), + path('dates/books/sortedbyname/', views.BookArchive.as_view(ordering='name')), + path('dates/books/sortedbynamedec/', views.BookArchive.as_view(ordering='-name')), # ListView - url(r'^list/dict/$', - views.DictList.as_view()), - url(r'^list/dict/paginated/$', - views.DictList.as_view(paginate_by=1)), - url(r'^list/artists/$', - views.ArtistList.as_view(), - name="artists_list"), - url(r'^list/authors/$', - views.AuthorList.as_view(), - name="authors_list"), - url(r'^list/authors/paginated/$', - views.AuthorList.as_view(paginate_by=30)), - url(r'^list/authors/paginated/(?P<page>[0-9]+)/$', - views.AuthorList.as_view(paginate_by=30)), - url(r'^list/authors/paginated-orphaned/$', - views.AuthorList.as_view(paginate_by=30, paginate_orphans=2)), - url(r'^list/authors/notempty/$', - views.AuthorList.as_view(allow_empty=False)), - url(r'^list/authors/notempty/paginated/$', - views.AuthorList.as_view(allow_empty=False, paginate_by=2)), - url(r'^list/authors/template_name/$', - views.AuthorList.as_view(template_name='generic_views/list.html')), - url(r'^list/authors/template_name_suffix/$', - views.AuthorList.as_view(template_name_suffix='_objects')), - url(r'^list/authors/context_object_name/$', - views.AuthorList.as_view(context_object_name='author_list')), - url(r'^list/authors/dupe_context_object_name/$', - views.AuthorList.as_view(context_object_name='object_list')), - url(r'^list/authors/invalid/$', - views.AuthorList.as_view(queryset=None)), - url(r'^list/authors/paginated/custom_class/$', - views.AuthorList.as_view(paginate_by=5, paginator_class=views.CustomPaginator)), - url(r'^list/authors/paginated/custom_page_kwarg/$', - views.AuthorList.as_view(paginate_by=30, page_kwarg='pagina')), - url(r'^list/authors/paginated/custom_constructor/$', - views.AuthorListCustomPaginator.as_view()), - url(r'^list/books/sorted/$', - views.BookList.as_view(ordering='name')), - url(r'^list/books/sortedbypagesandnamedec/$', - views.BookList.as_view(ordering=('pages', '-name'))), + path('list/dict/', views.DictList.as_view()), + path('list/dict/paginated/', views.DictList.as_view(paginate_by=1)), + path('list/artists/', views.ArtistList.as_view(), name='artists_list'), + path('list/authors/', views.AuthorList.as_view(), name='authors_list'), + path('list/authors/paginated/', views.AuthorList.as_view(paginate_by=30)), + path('list/authors/paginated/<int:page>/', views.AuthorList.as_view(paginate_by=30)), + path('list/authors/paginated-orphaned/', views.AuthorList.as_view(paginate_by=30, paginate_orphans=2)), + path('list/authors/notempty/', views.AuthorList.as_view(allow_empty=False)), + path('list/authors/notempty/paginated/', views.AuthorList.as_view(allow_empty=False, paginate_by=2)), + path('list/authors/template_name/', views.AuthorList.as_view(template_name='generic_views/list.html')), + path('list/authors/template_name_suffix/', views.AuthorList.as_view(template_name_suffix='_objects')), + path('list/authors/context_object_name/', views.AuthorList.as_view(context_object_name='author_list')), + path('list/authors/dupe_context_object_name/', views.AuthorList.as_view(context_object_name='object_list')), + path('list/authors/invalid/', views.AuthorList.as_view(queryset=None)), + path( + 'list/authors/paginated/custom_class/', + views.AuthorList.as_view(paginate_by=5, paginator_class=views.CustomPaginator), + ), + path('list/authors/paginated/custom_page_kwarg/', views.AuthorList.as_view(paginate_by=30, page_kwarg='pagina')), + path('list/authors/paginated/custom_constructor/', views.AuthorListCustomPaginator.as_view()), + path('list/books/sorted/', views.BookList.as_view(ordering='name')), + path('list/books/sortedbypagesandnamedec/', views.BookList.as_view(ordering=('pages', '-name'))), # YearArchiveView # Mixing keyword and positional captures below is intentional; the views # ought to be able to accept either. - url(r'^dates/books/(?P<year>[0-9]{4})/$', - views.BookYearArchive.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/make_object_list/$', - views.BookYearArchive.as_view(make_object_list=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/allow_empty/$', - views.BookYearArchive.as_view(allow_empty=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/allow_future/$', - views.BookYearArchive.as_view(allow_future=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/paginated/$', - views.BookYearArchive.as_view(make_object_list=True, paginate_by=30)), - url(r'^dates/books/(?P<year>\d{4})/sortedbyname/$', - views.BookYearArchive.as_view(make_object_list=True, ordering='name')), - url(r'^dates/books/(?P<year>\d{4})/sortedbypageandnamedec/$', - views.BookYearArchive.as_view(make_object_list=True, ordering=('pages', '-name'))), - url(r'^dates/books/no_year/$', - views.BookYearArchive.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/reverse/$', - views.BookYearArchive.as_view(queryset=Book.objects.order_by('pubdate'))), - url(r'^dates/booksignings/(?P<year>[0-9]{4})/$', - views.BookSigningYearArchive.as_view()), + path('dates/books/<int:year>/', views.BookYearArchive.as_view()), + path('dates/books/<int:year>/make_object_list/', views.BookYearArchive.as_view(make_object_list=True)), + path('dates/books/<int:year>/allow_empty/', views.BookYearArchive.as_view(allow_empty=True)), + path('dates/books/<int:year>/allow_future/', views.BookYearArchive.as_view(allow_future=True)), + path('dates/books/<int:year>/paginated/', views.BookYearArchive.as_view(make_object_list=True, paginate_by=30)), + path( + 'dates/books/<int:year>/sortedbyname/', + views.BookYearArchive.as_view(make_object_list=True, ordering='name'), + ), + path( + 'dates/books/<int:year>/sortedbypageandnamedec/', + views.BookYearArchive.as_view(make_object_list=True, ordering=('pages', '-name')), + ), + path('dates/books/no_year/', views.BookYearArchive.as_view()), + path('dates/books/<int:year>/reverse/', views.BookYearArchive.as_view(queryset=Book.objects.order_by('pubdate'))), + path('dates/booksignings/<int:year>/', views.BookSigningYearArchive.as_view()), # MonthArchiveView - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/$', - views.BookMonthArchive.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/$', - views.BookMonthArchive.as_view(month_format='%m')), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/allow_empty/$', - views.BookMonthArchive.as_view(allow_empty=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/allow_future/$', - views.BookMonthArchive.as_view(allow_future=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/paginated/$', - views.BookMonthArchive.as_view(paginate_by=30)), - url(r'^dates/books/(?P<year>[0-9]{4})/no_month/$', - views.BookMonthArchive.as_view()), - url(r'^dates/booksignings/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/$', - views.BookSigningMonthArchive.as_view()), + path('dates/books/<int:year>/<int:month>/', views.BookMonthArchive.as_view(month_format='%m')), + path('dates/books/<int:year>/<month>/', views.BookMonthArchive.as_view()), + path('dates/books/<int:year>/<month>/allow_empty/', views.BookMonthArchive.as_view(allow_empty=True)), + path('dates/books/<int:year>/<month>/allow_future/', views.BookMonthArchive.as_view(allow_future=True)), + path('dates/books/<int:year>/<month>/paginated/', views.BookMonthArchive.as_view(paginate_by=30)), + path('dates/books/<int:year>/no_month/', views.BookMonthArchive.as_view()), + path('dates/booksignings/<int:year>/<month>/', views.BookSigningMonthArchive.as_view()), # WeekArchiveView - url(r'^dates/books/(?P<year>[0-9]{4})/week/(?P<week>[0-9]{1,2})/$', - views.BookWeekArchive.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/week/(?P<week>[0-9]{1,2})/allow_empty/$', - views.BookWeekArchive.as_view(allow_empty=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/week/(?P<week>[0-9]{1,2})/allow_future/$', - views.BookWeekArchive.as_view(allow_future=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/week/(?P<week>[0-9]{1,2})/paginated/$', - views.BookWeekArchive.as_view(paginate_by=30)), - url(r'^dates/books/(?P<year>[0-9]{4})/week/no_week/$', - views.BookWeekArchive.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/week/(?P<week>[0-9]{1,2})/monday/$', - views.BookWeekArchive.as_view(week_format='%W')), - url(r'^dates/booksignings/(?P<year>[0-9]{4})/week/(?P<week>[0-9]{1,2})/$', - views.BookSigningWeekArchive.as_view()), + path('dates/books/<int:year>/week/<int:week>/', views.BookWeekArchive.as_view()), + path('dates/books/<int:year>/week/<int:week>/allow_empty/', views.BookWeekArchive.as_view(allow_empty=True)), + path('dates/books/<int:year>/week/<int:week>/allow_future/', views.BookWeekArchive.as_view(allow_future=True)), + path('dates/books/<int:year>/week/<int:week>/paginated/', views.BookWeekArchive.as_view(paginate_by=30)), + path('dates/books/<int:year>/week/no_week/', views.BookWeekArchive.as_view()), + path('dates/books/<int:year>/week/<int:week>/monday/', views.BookWeekArchive.as_view(week_format='%W')), + path('dates/booksignings/<int:year>/week/<int:week>/', views.BookSigningWeekArchive.as_view()), # DayArchiveView - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/$', - views.BookDayArchive.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/(?P<day>[0-9]{1,2})/$', - views.BookDayArchive.as_view(month_format='%m')), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/allow_empty/$', - views.BookDayArchive.as_view(allow_empty=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/allow_future/$', - views.BookDayArchive.as_view(allow_future=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/allow_empty_and_future/$', - views.BookDayArchive.as_view(allow_empty=True, allow_future=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/paginated/$', - views.BookDayArchive.as_view(paginate_by=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/no_day/$', - views.BookDayArchive.as_view()), - url(r'^dates/booksignings/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/$', - views.BookSigningDayArchive.as_view()), + path('dates/books/<int:year>/<int:month>/<int:day>/', views.BookDayArchive.as_view(month_format='%m')), + path('dates/books/<int:year>/<month>/<int:day>/', views.BookDayArchive.as_view()), + path('dates/books/<int:year>/<month>/<int:day>/allow_empty/', views.BookDayArchive.as_view(allow_empty=True)), + path('dates/books/<int:year>/<month>/<int:day>/allow_future/', views.BookDayArchive.as_view(allow_future=True)), + path( + 'dates/books/<int:year>/<month>/<int:day>/allow_empty_and_future/', + views.BookDayArchive.as_view(allow_empty=True, allow_future=True), + ), + path('dates/books/<int:year>/<month>/<int:day>/paginated/', views.BookDayArchive.as_view(paginate_by=True)), + path('dates/books/<int:year>/<month>/no_day/', views.BookDayArchive.as_view()), + path('dates/booksignings/<int:year>/<month>/<int:day>/', views.BookSigningDayArchive.as_view()), # TodayArchiveView - url(r'^dates/books/today/$', - views.BookTodayArchive.as_view()), - url(r'^dates/books/today/allow_empty/$', - views.BookTodayArchive.as_view(allow_empty=True)), - url(r'^dates/booksignings/today/$', - views.BookSigningTodayArchive.as_view()), + path('dates/books/today/', views.BookTodayArchive.as_view()), + path('dates/books/today/allow_empty/', views.BookTodayArchive.as_view(allow_empty=True)), + path('dates/booksignings/today/', views.BookSigningTodayArchive.as_view()), # DateDetailView - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/(?P<pk>[0-9]+)/$', - views.BookDetail.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2})/(?P<day>[0-9]{1,2})/(?P<pk>[0-9]+)/$', - views.BookDetail.as_view(month_format='%m')), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/(?P<pk>[0-9]+)/allow_future/$', - views.BookDetail.as_view(allow_future=True)), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/nopk/$', - views.BookDetail.as_view()), + path('dates/books/<int:year>/<int:month>/<day>/<int:pk>/', views.BookDetail.as_view(month_format='%m')), + path('dates/books/<int:year>/<month>/<day>/<int:pk>/', views.BookDetail.as_view()), + path( + 'dates/books/<int:year>/<month>/<int:day>/<int:pk>/allow_future/', + views.BookDetail.as_view(allow_future=True), + ), + path('dates/books/<int:year>/<month>/<int:day>/nopk/', views.BookDetail.as_view()), - url(r'^dates/books/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/byslug/(?P<slug>[\w-]+)/$', - views.BookDetail.as_view()), + path('dates/books/<int:year>/<month>/<int:day>/byslug/<slug:slug>/', views.BookDetail.as_view()), - url( - r'^dates/books/get_object_custom_queryset/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/' - r'(?P<pk>[0-9]+)/$', + path( + 'dates/books/get_object_custom_queryset/<int:year>/<month>/<int:day>/<int:pk>/', views.BookDetailGetObjectCustomQueryset.as_view(), ), - url(r'^dates/booksignings/(?P<year>[0-9]{4})/(?P<month>[a-z]{3})/(?P<day>[0-9]{1,2})/(?P<pk>[0-9]+)/$', - views.BookSigningDetail.as_view()), + path('dates/booksignings/<int:year>/<month>/<int:day>/<int:pk>/', views.BookSigningDetail.as_view()), # Useful for testing redirects - url(r'^accounts/login/$', auth_views.LoginView.as_view()) + path('accounts/login/', auth_views.LoginView.as_view()) ] |