ManyToMany fields in database lookups

2008-03-04 Thread Vincent Foley

Hello,

I have a curious problem with a complex filter in 0.96:

Merchant.objects.filter(Q(categories_fr__name__icontains=s) |
Q(categories_en__name__icontains=s))

this returns an empty queryset even when 's' is in categories_fr.
Changing categories_fr__name with an attribute directly in the object
has the same effect.  It seems that a ManyToMany field with no
elements nullifies the entire query.

Is this a bug, or am I misunderstanding something?

Thank you,

Vincent.

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



Re: ManyToMany fields in database lookups

2008-03-04 Thread Malcolm Tredinnick


On Tue, 2008-03-04 at 07:28 -0800, Vincent Foley wrote:
> Hello,
> 
> I have a curious problem with a complex filter in 0.96:
> 
> Merchant.objects.filter(Q(categories_fr__name__icontains=s) |
> Q(categories_en__name__icontains=s))
> 
> this returns an empty queryset even when 's' is in categories_fr.
> Changing categories_fr__name with an attribute directly in the object
> has the same effect.  It seems that a ManyToMany field with no
> elements nullifies the entire query.
> 
> Is this a bug, or am I misunderstanding something?

There are a few issues with many-to-many fields and empty results like
this. The whole area has been given an overhaul in the queryset-refactor
branch and so should be fixed on trunk soon-ish.

In the meantime, just select the two halves individually and merge them
in Python.

Malcolm

-- 
If it walks out of your refrigerator, LET IT GO!! 
http://www.pointy-stick.com/blog/


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