On Tue, Feb 1, 2011 at 10:29 PM, Adrian Bool <a...@logic.org.uk> wrote: > > On 1 Feb 2011, at 21:05, Marc Aymerich wrote: > >> Hi all, >> I want to provide an encapsulated static attribute called _registry >> for several classes. >> >> I try to use inheritance in order to make it DRY: all classes inherit >> from a BaseClass that implements the _registry encapsulation. But with >> inheritance it doesn't work how I want, because a single instance of >> the _registry is shared between all of the inherited classes, and I >> want to have an independent _registry for every class. >> >> How can I do that without coping all the code in every class? > > > Create your base class with the _registry attribute like so, > > class MyBaseClass(models.Model) > _registry = models.IntegerField() > class Meta: > abstract = True > > With 'abstract = True'; when you inherit from MyBaseClass the child classes > will have their own _registry columns in the DB (rather than sharing a common > table). >
Thanks for the answer Adrian, but I want a class (or static) attribute shared among all instances of the class. something like class MyClass(models.Model): _registry = ['hello',] # model fields here.... @classmethod def get_registry(cls): return cls._registry @classmethod def add_registry(cls, str): return cls._registry.append(str) -- Marc -- 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.