On Jan 2, 2011, at 5:54 AM, villas wrote:
>
> Well, say I make a plugin which I want to link back to a function in
> my default_controller. I would not wish to to make my link like this
> URL('default','func'), but like this URL(default_controller,'func').
> See what I mean?
Sort of. The problem is that you're not guaranteed of having a
default_controller, unless someone has appropriately configured and installed
an app-specific router for that application (or made it the default application
in the base router).
I can provide an API (something like gluon.rewrite.get_router(appname)) that
would return the effective router (dict, or actually Storage) for a given
application, but I can't guarantee that any particular item will be defined in
it (or even that a router exists).
You could then do something like this:
from gluon.rewrite import get_router as router
...
URL(router(request.application).default_controller or 'default', 'func')
or define your own global in a model file:
from gluon.rewrite import get_router as router
...
my_default_controller = router(request.application).default_controller
or 'default'
Would that work?
>
>
> On Jan 2, 2:09 am, Jonathan Lundell <[email protected]> wrote:
>> On Jan 1, 2011, at 5:46 PM, villas wrote:
>>
>>> The 'default_controller' variable in routes.py doesn't seem to be
>>> available in the rest of the app.
>>> From where may I access that information?
>>> Or, do I have to set that variable again in as an app setting
>>> somewhere (not very DRY!).
>>
>> I'm not sure what you're asking. Why would you want to access it?