> How do I do something like this using Django Models?
> 
>      SELECT name,birthdate FROM friends
>        UNION
>          SELECT name,birthdate FROM enemies
>        ORDER BY birthdate, name;

several alternatives:

Use a custom manager:
####################################################
   class FriendManager(Manager):
     def __init__(self, is_friend):
       self.is_friend = is_friend
     def get_query_set(self):
       return super(FriendManager, self).get_query_set(
         ).filter(is_friend=self.is_friend)

   class People(Model):
     name = CharField(...)
     birthdate = DateField(...)
     is_friend = BooleanField(...)
     friends = FriendManager(True)
     enemies = FriendManager(False)
     objects = Manager()
   ...
   friends = People.friends.all()
   enemies = People.enemies.all()
   everybody = People.objects.all()
   young_friends = People.friends.filter(
     birthdate__gt=date(1990,1,1))
   old_enemies = People.enemies.filter(
     birthdate__lt=date(1943,1,1))
####################################################


Or, you could just use itertools.chain:

   for person in itertools.chain(
       Friends.objects.all(),
       Enemies.objects.all()):
     print person.name, "(%s)" % person.birthdate

-tim





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

Reply via email to