namespace_urls.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from django.conf.urls import include, url
  2. from . import views
  3. class URLObject(object):
  4. def __init__(self, app_name, namespace):
  5. self.app_name = app_name
  6. self.namespace = namespace
  7. def urls(self):
  8. return ([
  9. url(r'^inner/$', views.empty_view, name='urlobject-view'),
  10. url(r'^inner/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='urlobject-view'),
  11. url(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'),
  12. ], self.app_name, self.namespace)
  13. urls = property(urls)
  14. testobj1 = URLObject('testapp', 'test-ns1')
  15. testobj2 = URLObject('testapp', 'test-ns2')
  16. default_testobj = URLObject('testapp', 'testapp')
  17. otherobj1 = URLObject('nodefault', 'other-ns1')
  18. otherobj2 = URLObject('nodefault', 'other-ns2')
  19. urlpatterns = [
  20. url(r'^normal/$', views.empty_view, name='normal-view'),
  21. url(r'^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='normal-view'),
  22. url(r'^resolver_match/$', views.pass_resolver_match_view, name='test-resolver-match'),
  23. url(r'^\+\\\$\*/$', views.empty_view, name='special-view'),
  24. url(r'^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='mixed-args'),
  25. url(r'^no_kwargs/([0-9]+)/([0-9]+)/$', views.empty_view, name='no-kwargs'),
  26. url(r'^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance, name='view-class'),
  27. url(r'^unnamed/normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view),
  28. url(r'^unnamed/view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance),
  29. url(r'^test1/', include(testobj1.urls)),
  30. url(r'^test2/', include(testobj2.urls)),
  31. url(r'^default/', include(default_testobj.urls)),
  32. url(r'^other1/', include(otherobj1.urls)),
  33. url(r'^other[246]/', include(otherobj2.urls)),
  34. url(r'^ns-included[135]/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns1')),
  35. url(r'^ns-included2/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns2')),
  36. url(r'^app-included/', include('urlpatterns_reverse.included_namespace_urls', 'inc-app', 'inc-app')),
  37. url(r'^included/', include('urlpatterns_reverse.included_namespace_urls')),
  38. url(r'^inc(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_urls', namespace='inc-ns5')),
  39. url(r'^included/([0-9]+)/', include('urlpatterns_reverse.included_namespace_urls')),
  40. url(r'^ns-outer/(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-outer')),
  41. url(r'^\+\\\$\*/', include('urlpatterns_reverse.namespace_urls', namespace='special')),
  42. ]