"Adrian Holovaty" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > >Thoughts?
+1. I want to throw in an idea related to apps. Hugo, Sune, and I had a discussion some time ago about get_absolute_url() in models. My idea is totally half-baked, undetailed, and flawed. I want to collect some input and your ideas. Basically I was thinking about settings.py-style file for apps. In this file you may overwrite database table names used by the app (variation: prefix of table names), urls, maybe something else (e.g., external references). This file will reference the app itself. The idea is to be able to do following things: 1) Create portable but customizable apps. 2) Reference the app in downloaded Python egg. 3) Use one app in two or more places on the same web site. 4) Use the same app without core changes on different web sites. With it you can create truly portable apps, which doesn't require manual tweaking outside of predefined file. We can have a repository of such apps. >From end user (web site designer) perspective it should work like this: 1) Main setting.py specifies a list of installed apps. (We already have it). 2) This list is enough to chain app urls in main urls.py list. (One possible implementation is to have a special command in urls.py to chain all unreferenced apps at that point). 3) The main file for an app is going to be apps/appname/settings.py, which references actual app code. By default it is a directory it is in. Or it may be some other directory/egg. If settings.py is not present, some default settings are assumed, which should be totally compatible with existing setup. 4) Web developer overrides some app settings in settings.py, e.g., table names for models, or url patterns for views. 5) Web developer overrides/adds templates in the same fashion it is done now. (I assume that template loading search for template in the templates/appname/ directory first, in the appdir/templates next.) 6) Done. I think it solves portability problem while being backward compatible. What did I miss? Please give me your critique, input, alternative ideas, alternative scenarios, and whatever related thoughts you have. Thanks, Eugene