Login

Conditional url pattern include

Author:
zbyte64
Posted:
August 20, 2010
Language:
Python
Version:
Not specified
Tags:
urls resolver
Score:
0 (after 0 ratings)

if_installed checks to see if the app is in installed apps. If it is not then it excludes it from being resolved in the url structure. In this example, myapp.urls will not be imported if myapp is not installed

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from django.conf import settings
from django.conf.urls.defaults import *
from django.contrib import admin

admin.autodiscover()

def if_installed(appname, *args, **kwargs):
    ret = url(*args, **kwargs)
    if appname not in settings.INSTALLED_APPS:
        ret.resolve = lambda *args: None
    return ret

urlpatterns = patterns('',
    if_installed('myapp', r'^myapp/', include('myapp.urls')),
    (r'^admin/', include(admin.site.urls)),
)

More like this

  1. Variable resolving URL template tag by UloPe 6 years, 5 months ago
  2. New Pattern by Oduvan 6 years, 9 months ago
  3. Resolve URLs to view name by UloPe 6 years, 5 months ago
  4. Scalable and invalidateble cache_page decorator by marinho 6 years, 3 months ago
  5. Ensure submitted slugs do not conflict with existing resolvable URLs by ElfSternberg 6 years, 2 months ago

Comments

Please login first before commenting.