On Fri, Jul 8, 2011 at 3:43 PM, Thomas Denmark <mrve...@gmail.com> wrote: > Thanks Tom. So I have now read about AdminSite. > > It seems like they have encapsulated an application into a class. It > is the first time I see this. And to use the application, one must > instantiate the class. To have several instances, you just instantiate > several. That seems kind of straight forward. > > But it leaves me with more questions. > > 1) Is there a recipe for encapsulating an application as a class? I > can see that the AdminSite has no super class. And I did not find much > with googling. > > 2) All the Django documentation, that I have read has only dealt with > building applications like folders with a few files: models.py, > views.py and urls.py. That is what happens, when one writes 'admin.py > startapp foo'. Is it possible to make several instances of such an > application? > > Thomas > >
It's really to do with the URL namespace, and nothing to do with classes, that is just how the admin is encapsulated. If you have a project called 'foo' then you might include it's URLs like so: urlpatterns = patterns(.... (r'^foo/', include('foo.urls')), ) If you wanted to include a second instance of it, you would do this: urlpatterns = patterns(.... (r'^foo/', include('foo.urls'), app_name='foo'), (r'^bar/', include('foo.urls'), namespace='bar', app_name='foo'), ) So now you have two instances of 'foo' installed. When reversing 'foo:some_named_url', Django will look at the current app - if it is 'bar', the URLs will resolve to the 'bar' instance. The key thing here is that the templates are the same, and Django DTRT when working out which urlconf to use. Cheers Tom -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@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.