urls.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import os
  2. from functools import partial
  3. from django.conf.urls.i18n import i18n_patterns
  4. from django.urls import include, path, re_path
  5. from django.utils.translation import gettext_lazy as _
  6. from django.views import defaults, i18n, static
  7. from . import views
  8. base_dir = os.path.dirname(os.path.abspath(__file__))
  9. media_dir = os.path.join(base_dir, 'media')
  10. locale_dir = os.path.join(base_dir, 'locale')
  11. urlpatterns = [
  12. path('', views.index_page),
  13. # Default views
  14. path('nonexistent_url/', partial(defaults.page_not_found, exception=None)),
  15. path('server_error/', defaults.server_error),
  16. # a view that raises an exception for the debug view
  17. path('raises/', views.raises),
  18. path('raises400/', views.raises400),
  19. path('raises400_bad_request/', views.raises400_bad_request),
  20. path('raises403/', views.raises403),
  21. path('raises404/', views.raises404),
  22. path('raises500/', views.raises500),
  23. path('custom_reporter_class_view/', views.custom_reporter_class_view),
  24. path('technical404/', views.technical404, name='my404'),
  25. path('classbased404/', views.Http404View.as_view()),
  26. # i18n views
  27. path('i18n/', include('django.conf.urls.i18n')),
  28. path('jsi18n/', i18n.JavaScriptCatalog.as_view(packages=['view_tests'])),
  29. path('jsi18n/app1/', i18n.JavaScriptCatalog.as_view(packages=['view_tests.app1'])),
  30. path('jsi18n/app2/', i18n.JavaScriptCatalog.as_view(packages=['view_tests.app2'])),
  31. path('jsi18n/app5/', i18n.JavaScriptCatalog.as_view(packages=['view_tests.app5'])),
  32. path('jsi18n_english_translation/', i18n.JavaScriptCatalog.as_view(packages=['view_tests.app0'])),
  33. path('jsi18n_multi_packages1/',
  34. i18n.JavaScriptCatalog.as_view(packages=['view_tests.app1', 'view_tests.app2'])),
  35. path('jsi18n_multi_packages2/',
  36. i18n.JavaScriptCatalog.as_view(packages=['view_tests.app3', 'view_tests.app4'])),
  37. path('jsi18n_admin/',
  38. i18n.JavaScriptCatalog.as_view(packages=['django.contrib.admin', 'view_tests'])),
  39. path('jsi18n_template/', views.jsi18n),
  40. path('jsi18n_multi_catalogs/', views.jsi18n_multi_catalogs),
  41. path('jsoni18n/', i18n.JSONCatalog.as_view(packages=['view_tests'])),
  42. # Static views
  43. re_path(r'^site_media/(?P<path>.*)$', static.serve, {'document_root': media_dir, 'show_indexes': True}),
  44. ]
  45. urlpatterns += i18n_patterns(
  46. re_path(_(r'^translated/$'), views.index_page, name='i18n_prefixed'),
  47. )
  48. urlpatterns += [
  49. path('template_exception/', views.template_exception, name='template_exception'),
  50. path(
  51. 'raises_template_does_not_exist/<path:path>',
  52. views.raises_template_does_not_exist,
  53. name='raises_template_does_not_exist'
  54. ),
  55. path('render_no_template/', views.render_no_template, name='render_no_template'),
  56. re_path(r'^test-setlang/(?P<parameter>[^/]+)/$', views.with_parameter, name='with_parameter'),
  57. # Patterns to test the technical 404.
  58. re_path(r'^regex-post/(?P<pk>[0-9]+)/$', views.index_page, name='regex-post'),
  59. path('path-post/<int:pk>/', views.index_page, name='path-post'),
  60. ]