I have a model object that looks something like this:

   class Foo(models.Model)
       foo_id = models.IntegerField(primary_key = True)
       xyz = models.CharField(max_length = 20)

In my application, I'd like to add a list of Bar objects. It's like a  
foreign key, except that Bar objects don't exist in my databases. So  
I want a Foo.bars field.

- If I just create the field:

   class Foo(models.Model)
       foo_id = models.IntegerField(primary_key = True)
       xyz = models.CharField(max_length = 20)
       bars = []

Then the list belongs to the class, not instances.

- If I try creating the field lazily, e.g.

   class Foo(models.Model)
       foo_id = models.IntegerField(primary_key = True)
       xyz = models.CharField(max_length = 20)

       def attach_bar(self, bar):
           if self.bars is None:
               self.bars = []
           self.bars.append(bar)

Then calling attach_bar from the application results in an  
AttributeError, 'Foo' object has no attribute 'bars'.

- Specifying Foo.__init__ to initialize bars doesn't work, because it  
interferes with creation of Foo objects from database queries.

I played around with subclassing, e.g. class FooBase 
(models.Model) ... class Foo(FooBase) but couldn't get that to work.

How can I add a field to the Foo class that doesn't come from the  
database?

Jack Orenstein

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