On Wed, 2007-07-04 at 04:34 -0700, Eugene Morozov wrote: > Hello, > I have two projects, they were developed independently. They will be > run on the same server and have many things in common (notably some > models and templatetags). > > While I can import models from another project if it is on PYTHONPATH, > I cannot find a way to share templatetags. I don't want to copy them, > because maintaining costs would become higher (need to remember to > apply bug fixes in both places, for example). > > Is there a way to import templatetags from another project?
Reuse is much easier once you think in terms of applications, rather than projects. A project is just a collection of applications (really, it's just a settings file and maybe a root URLConf). So you can easily share an application in two projects, since applications can be imported from anywhere on your Python path, as you've noted. So, if you *only* want to share the template tags and nothing else from their current application, make a new application that only contains those template tags. Then you can install that application into both projects (by including the import path in INSTALLED_APPS in each project's settings file) and the code will be shared as you would expect. As mentioned in a thread earlier today on this list, loading a template tag in a template will cause all the installed apps to be searched for that template tag file, so you don't need to worry about keeping the tags right next to the templates they are used in. > Django is really great framework, but I have a gut feeling that Django > support for code reuse is significantly worse, than, say, in Plone/ > Zope 3. Though it might be because of my relative inexpirience in > Django. It's due to your inexperience, I suspect. Almost everything in Django operates through normal Python imports, so you can share any code that is on your Python path. The only real constraints are that template tags are loaded from a directory called templatetags/ that must live in an application directory and models must live in a module called "models". Everything else is free-form and entirely under your control. Regards, Malcolm -- Depression is merely anger without enthusiasm. http://www.pointy-stick.com/blog/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---

