On Aug 3, 12:54 pm, Bram - Smartelectronix <[EMAIL PROTECTED]> wrote: > hello all, > > I have a generic relation Flag, with a FlagType: > > class FlagType(models.Model): > name = models.CharField(maxlength=50) > description = models.TextField() > > class Flag(models.Model): > type = models.ForeignKey(FlagType) # type of flag > content_type = models.ForeignKey(ContentType) > object_id = models.PositiveIntegerField() > content_object = generic.GenericForeignKey() > user = models.ForeignKey(User) > created = models.DateTimeField() > > So, for example "illegal" or "to feature" would be flags. Now we're > flagging Song objects and I would like a queryset that gets me all Songs > flagged with a flag of type "illegal". > > I can do: > > flag = FlagType.objects.get(name='illegal') > ctype = ContentType.objects.get_for_model(Song) > flagged = Flag.objects.filter(type=flag, > content_type=ctype).order_by('-created') > songs = [item.content_object for item in flagged ] > > But the problem is: I can't do extra things to this list like order_by() > or an extra filter() or exclude(). > > How can I get the same result, but still have a queryset (containing > Songs) instead of a list?? > > - bram
songs = Song.objects.filter(id__in=[item.content_object.id for item in flagged]) .. would hit the DB again .. but requires little code. Post back if another hit isn't a viable option and we'll take a closer look at the problem. --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---