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