This worked on on Django 1.2.5:

    Parent.objects.exclude(child__isnull=True)

Does it work for you?

Excerpts from robin's message of Tue May 31 05:53:26 -0300 2011:
> Example code:
> 
>    class Parent(models.Model):
>         name = models.CharField(max_length='20',blank=True)
> 
>     class Child(Parent):
>         pass
> 
> I want to get the result of Child.objects.all() but I DO NOT want to
> use Child.
> I want to use Parent instead, which I tried to do with:
> 
>     Parent.objects.filter(child__isnull=False)
> 
> Which doesn't work and gives the result of Product.objects.all()
> instead.
> However If I do the following, it WORKS:
> 
>     Parent.objects.filter(child__name__isnull=False)
> 
> Another way, if I insist on using
> Parent.objects.filter(child__isnull=False), is to change the Child
> model to the following:
> 
>     class Child(models.Model):
>         parent = models.OneToOneField(Parent)
> 
> Then Parent.objects.filter(child__isnull=False) would WORK
> 
> The problem with the 2 solutions above is that filtering with
> child__name__isnull looks hackish, and I don't want to change my Child
> model to use OneToOneField.
> 
> So is there a better way?
> 
> Thanks,
> Robin
-- 
Matías Aguirre <[email protected]>

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