On 16 Sep 2006, at 12:42, Malcolm Tredinnick wrote:

>
> On Sat, 2006-09-16 at 12:25 +0100, Tom Smith wrote:
>> How would I build an "AND" query...
>>
>> for example...
>>
>> words = ['chicken', 'beef', 'lamb']
>> Recipe.objects.exclude(title__contains=words)
>>
>> I don't want to do 3 queries...
>
> Please start a new thread for new topics, rather than dropping into  
> the
> middle of an existing thread like this.
>
> To answer your question: have a look at
> http://www.djangoproject.com/documentation/db_api/#complex-lookups- 
> with-q-objects

Thanks...

That documentation has allowed me to use the __in method... like this...

Recipe.objects.exclude(category__in=words)

...which is great, but now having set words to and empty list [] I  
get the error...

(1064, "You have an error in your SQL syntax; check the manual that  
corresponds to your MySQL server version for the right syntax to use  
near '))) AND (NOT (`myproject_product`.`category` IN ())))' at line 1")

So... would it be possible to do this?

o = Recipe.objects
if len(words) > 1:
        o.exclude(category__in=words)
if len(someotherlist) > 1:
        o.exclude(someotherfield__in= someotherlist)
o.execute()

...or would the first line go off and get all the objects (I have  
about a million records)?

Thanks

tom


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

Reply via email to