Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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

Metadata

Release files for django-dburlresolvers 0.1.0-beta2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-dburlresolvers 0.1.0-beta2
File Size Uploaded
django-dburlresolvers-0.1.0-beta2.tar.gz 11.7 kB Details

Release files / django-dburlresolvers-0.1.0-beta2.tar.gz

Download URL django-dburlresolvers-0.1.0-beta2.tar.gz
Size 11.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a1bd290f964d212c894452c4e89081f0e072df47c8dde64e63ab75040bb4e41b
BLAKE2b-256 checksum
How to use checksums
c493a5b529eb5e593f59f61dcc24fe77d7d1a5d974221b42f73796a4bf6fea23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.0-beta2 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page