1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 | import sys
from django.core.urlresolvers import RegexURLResolver
from django.conf.urls.defaults import patterns
def url(*args):
"""
Usage:
@url(r'^users$')
def get_user_list(request):
...
@url(r'^info/$', r'^info/(.*)/$') # will match both
@render_to('wiki.html')
def wiki(request, title=''):
...
"""
caller_filename = sys._getframe(1).f_code.co_filename
module = None
for m in sys.modules.values():
if m and '__file__' in m.__dict__ and m.__file__.startswith(caller_filename):
module = m
break
def _wrapper(f):
if module:
if 'urlpatterns' not in module.__dict__:
module.urlpatterns = []
for pattern in args:
module.urlpatterns += patterns('',(pattern,f))
return f
return _wrapper
def include_urlpatterns(regex, module):
"""
Usage:
# in top-level module code:
urlpatterns = include_urlpatterns(r'^profile/', 'apps.myapp.views.profile')
"""
return [RegexURLResolver(regex, module)]
|
Comments
Also see my post in django-users: http://groups.google.com/group/django-users/browse_thread/thread/d2d9021eea86cd95
#
Looks interesting. I think it makes sense for really huge projects.
#