The problem is not the lack of information, the real problem is that i don't
know what to search for .

2010/9/9 bruno desthuilliers <bruno.desthuilli...@gmail.com>

>
>
> On 9 sep, 03:46, maroxe <bachir...@gmail.com> wrote:
> > Hi, I am trying to understand an other magic thing about django: it
> > can convert strings to modules. In settings.py, INSTALLED_APPS is
> > declared like that:
> >
> > INSTALLED_APPS = (
> >     'django.contrib.auth',
> >     'django.contrib.contenttypes',
> >     'django.contrib.sessions',
> > )
> > All it contains is strings. But django will convert those strings to
> > modules and import them later.
> >
> > I want to do be able to do the same thing. but i don't know how.
>
> One of the nice features of OSS is that you can read the source code,
> so no need to reinvent the wheel !-)
>
> Here's a snippet from one of our apps that should get you started:
>
> # -*- coding:utf-8 -*-
> from django.core.exceptions import ImproperlyConfigured
> from django.utils.importlib import import_module
>
> __backends = dict()
>
> def get_backend(classpath=None):
>    """Loads an OAI Repository backend and return an instance of it.
>
>    <classpath> is the python qualified path to the backend class, as
> a string, ie
>    'myapp.mymodule.ClassName'
>
>    If not provided, the backend specified as OAI_BACKEND in the main
> settings
>    file will be used.
>
>    Note : already instanciated backends are served from a local cache
>    """
>    from oai.repository import settings
>    classpath = classpath or settings.BACKEND
>
>    try:
>        backend = __backends[classpath]
>
>    except KeyError:
>        try:
>            mod_name, cls_name = classpath.rsplit('.', 1)
>            mod = import_module(mod_name)
>        except ImportError, e:
>            raise ImproperlyConfigured(
>                'Error importing OAI repository backend module %s:
> "%s"' % (mod_name, e)
>                )
>        try:
>            cls = getattr(mod, cls_name)
>        except AttributeError:
>            raise ImproperlyConfigured(
>                'Module "%s" does not define a "%s" class' %
> (mod_name, cls_name)
>                )
>
>        # instanciate and stores the backend class
>        backend = __backends[classpath] = cls()
>
>    return backend
>
> #
>
> ------------------------------------------------------------------------------
> __all__ = ("get_backend",)
>
>
> HTH
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to