Hello. Django noob here, pretty much.

I understand how one can use Q objects to construct OR statements
within a QuerySet, but (how) is it possible to do this dynamically?

I have a list of categories, and I want to find items that match ANY
of those categories. The current solution doesn't work too well as it
lists items that match ALL of the categories in the list. This is done
in this way:

results = RelatedModel.objects
for category in category_list:
    results = results.filter(categories__slug = category.slug)

So as you can see this is building an initial resultset of
RelatedModel objects, then narrowing it down with each iteration
through my category list (maybe not the most efficient way to do it,
but the one that made sense to me). Is it possible to do something
similar, but where Django produces OR statements instead of AND ones,
or should I just use the extra() function and supply the SQL myself?

Thanks a lot for your help.
-Mark
--~--~---------~--~----~------------~-------~--~----~
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 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to