mirror of
https://github.com/django/django.git
synced 2024-12-25 18:46:22 +00:00
f0f5212624
Propagated unnamed arguments as positional arguments into included URLconfs if no named arguments are defined. Positional and keyword arguments are never combined.
59 lines
2.5 KiB
Python
59 lines
2.5 KiB
Python
from django.conf.urls import include, url
|
|
|
|
from . import views
|
|
|
|
|
|
class URLObject(object):
|
|
def __init__(self, app_name, namespace):
|
|
self.app_name = app_name
|
|
self.namespace = namespace
|
|
|
|
def urls(self):
|
|
return ([
|
|
url(r'^inner/$', views.empty_view, name='urlobject-view'),
|
|
url(r'^inner/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='urlobject-view'),
|
|
url(r'^inner/\+\\\$\*/$', views.empty_view, name='urlobject-special-view'),
|
|
], self.app_name, self.namespace)
|
|
urls = property(urls)
|
|
|
|
testobj1 = URLObject('testapp', 'test-ns1')
|
|
testobj2 = URLObject('testapp', 'test-ns2')
|
|
default_testobj = URLObject('testapp', 'testapp')
|
|
|
|
otherobj1 = URLObject('nodefault', 'other-ns1')
|
|
otherobj2 = URLObject('nodefault', 'other-ns2')
|
|
|
|
urlpatterns = [
|
|
url(r'^normal/$', views.empty_view, name='normal-view'),
|
|
url(r'^normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='normal-view'),
|
|
url(r'^resolver_match/$', views.pass_resolver_match_view, name='test-resolver-match'),
|
|
|
|
url(r'^\+\\\$\*/$', views.empty_view, name='special-view'),
|
|
|
|
url(r'^mixed_args/([0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view, name='mixed-args'),
|
|
url(r'^no_kwargs/([0-9]+)/([0-9]+)/$', views.empty_view, name='no-kwargs'),
|
|
|
|
url(r'^view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance, name='view-class'),
|
|
|
|
url(r'^unnamed/normal/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.empty_view),
|
|
url(r'^unnamed/view_class/(?P<arg1>[0-9]+)/(?P<arg2>[0-9]+)/$', views.view_class_instance),
|
|
|
|
url(r'^test1/', include(testobj1.urls)),
|
|
url(r'^test2/', include(testobj2.urls)),
|
|
url(r'^default/', include(default_testobj.urls)),
|
|
|
|
url(r'^other1/', include(otherobj1.urls)),
|
|
url(r'^other[246]/', include(otherobj2.urls)),
|
|
|
|
url(r'^ns-included[135]/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns1')),
|
|
url(r'^ns-included2/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-ns2')),
|
|
|
|
url(r'^included/', include('urlpatterns_reverse.included_namespace_urls')),
|
|
url(r'^inc(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_urls', namespace='inc-ns5')),
|
|
url(r'^included/([0-9]+)/', include('urlpatterns_reverse.included_namespace_urls')),
|
|
|
|
url(r'^ns-outer/(?P<outer>[0-9]+)/', include('urlpatterns_reverse.included_namespace_urls', namespace='inc-outer')),
|
|
|
|
url(r'^\+\\\$\*/', include('urlpatterns_reverse.namespace_urls', namespace='special')),
|
|
]
|