Thanks for bringing this topic up for discussion.

> jezdez says: "As Jacob said, that's such a pain. I tried and wasn't
> able to implement even part of the wanted features. The app cache
> needs a thourough look. But I don't see installing apps multiple times
> as a favored feature. I will happily participate in any work on this."
>
> Well, what are those features you wanted, explicitly?

Mostly what has been written down at 
http://code.djangoproject.com/wiki/InstalledAppsRevision 
.

Using an app multiple times is pretty difficult since it requires  
changes in the way the models are registered. To be honest, I'm not  
sure what the use case is for that. Could someone give an example  
please?

> The "apps multiple times" would be a corner case, the minimum benefits
> are third-party app disambiguation and verbose names for apps in the
> admin. Did you try the #3591 patch?

Yes, I tried it but wasn't convinced of how it's bound to the  
settings. In my (indeed unfinished) try I refactored the AppCache to  
live in django.core.apps that would contain instances of the new  
django.core.apps.base.App base class, each representing an app entity.  
The model loading mechanism would then use the app instances to get a  
list of available models, instead of the global model registry Django  
has now. Moving the app definition out of the settings.py would also  
allow i18n and all the other wonderful benefits class inheritance  
brings.

Users would be able to subclass the django.core.apps.base.App to use  
hooks for app-level testing, signal registration, database prefixes  
and verbose names. INSTALLED_APPS could then be a list of: a) a Python  
path to that app class or b) a path to a Python module, e.g.:

INSTALLED_APPS = (
        'django.contrib.admin',
        'tagging.app.TaggingApp',
        'registration',
)

Those items in INSTALLED_APPS that aren't paths to App subclasses  
would prompt the AppCache to create App instances on runtime by using  
the base class -- much like the admin does it now with ModelAdmin  
classes.

Additional (and future) use cases could be inter-app dependencies and  
compatibility with the WSGI app standard -- although I understand  
that's very much debatable.

Cheers,
Jannis


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

Reply via email to