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).

Cheers,

aid


-- 
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.

Reply via email to