Django-based URL resolving mechanism, which store the URL patterns in database
Project description
A URL resolver which store the URL patterns in database, which means a webmaster can define some URLs.
Installing
Install package from pypi:
$ easy_install django-dburlresolvers
Put dbresolver into your installed applications:
INSTALLED_APPS = ( ... 'dbresolver', )
Change the project urls.py file like this:
from dbresolver import get_dbresolver_patterns urlpatterns = patterns('', ... # your URLs ) urlpatterns += get_dbresolver_patterns()
Usage
Register some views of your project to get available in dbresolver. You may register it manually or automatically (by autodiscovering):
Manually: Using the dbresolver API directly:
>>> from dbresolver import register_view >>> from fooapp.views import foo_listing >>> register_view(foo_listing, 'Foo listing')
Automatically: Put this code in your project (we recommended in the project urls.py):
from dbresolver import autodiscover_views autodiscover_views()
You need to define an especial views_to_register method, like ilustrate this example:
def foo_listing(request): foo_list = FooModel.objects.all() return render_to_response('fooapp/foo_listing.html', {'foo_list': foo_list}, context_instance=RequestContext(request)) def views_to_register(): """ returns views to be registered with dbresolver """ return ( (foo_listing, _('Foo listing')), )
Also you can register generic views with parameters. For example, imagine you have a view like this:
def render_template(request, template_name=None): try: return direct_to_template(request, template=template_name) except TemplateDoesNotExist: raise Http404()
You may register the view with a parameter which be defined for admin user:
>>> from configfield import params >>> register_view(render_template, 'Generic view to render a template', params=( params.Template( name='template_name', label='Template to be rendered', ), ))
If you want autoregistering of that view, the code was like this:
def views_to_register(): return ( {'view': render_template, 'label': 'Generic view to render a template', 'params': ( params.Template(name='template_name', label='Template to be rendered'), )},
Now you only have to enter on admin site to create URL patterns attached to views. You can use both Django default regular expressions and simpler surlex expressions.
0.1.0-beta
Fixed a model form error when used outside admin.
0.1.0-alpha
Initial version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-dburlresolvers-0.1.0-beta2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1bd290f964d212c894452c4e89081f0e072df47c8dde64e63ab75040bb4e41b |
|
MD5 | 3ae600ab30c77d69cf70a4458a827d55 |
|
BLAKE2b-256 | c493a5b529eb5e593f59f61dcc24fe77d7d1a5d974221b42f73796a4bf6fea23 |