Hi all, I sometimes merge several queries together using |=. While this works well for "normal" queries, producing the desired "ORed" result, when I tried to do the same in a query using extra( where=["..."]) I got a wrong result - the queries were "ANDed". The following code demonstrates this:
>>> a = Article.objects.extra( where=["ID=7"]) >>> a[:] [<Article: 7701x0075 (Biodiversity as a source of new pharmaco...)>] >>> a |= Article.objects.filter( id=8) >>> a[:] [] >>> connection.queries[-1]['sql'] 'SELECT `articles_article`.`id`,`articles_article`.`title`,`articles_article`.`subtitle`,`articles_article`.`page`,`articles_article`.`page_code`,`articles_article`.`last_page`,`articles_article`.`doi`,`articles_article`.`volume`,`articles_article`.`issue`,`articles_article`.`year`,`articles_article`.`abstract`,`articles_article`.`type`,`articles_article`.`conference_id`,`articles_article`.`errata_to_id`,`articles_article`.`add_to_title`,`articles_article`.`affiliation_line`,`articles_article`.`author_line`,`articles_article`.`based_on_line`,`articles_article`.`category`,`articles_article`.`subcategory` FROM `articles_article` WHERE ID=7 AND ((`articles_article`.`id` = 8)) ORDER BY `articles_article`.`volume` ASC, `articles_article`.`issue` ASC, `articles_article`.`page` ASC' Just for record, here is the desired behavior that I get using standard filter approach for both queries. >>> b = Article.objects.filter( id=7) >>> b[:] [<Article: 7701x0075 (Biodiversity as a source of new pharmaco...)>] >>> b |= Article.objects.filter( id=8) >>> b[:] [<Article: 7701x0075 (Biodiversity as a source of new pharmaco...)>, <Article: 7701x0083 (Diverse metabolites of coral reef organi...)>] >>> connection.queries[-1]['sql'] 'SELECT `articles_article`.`id`,`articles_article`.`title`,`articles_article`.`subtitle`,`articles_article`.`page`,`articles_article`.`page_code`,`articles_article`.`last_page`,`articles_article`.`doi`,`articles_article`.`volume`,`articles_article`.`issue`,`articles_article`.`year`,`articles_article`.`abstract`,`articles_article`.`type`,`articles_article`.`conference_id`,`articles_article`.`errata_to_id`,`articles_article`.`add_to_title`,`articles_article`.`affiliation_line`,`articles_article`.`author_line`,`articles_article`.`based_on_line`,`articles_article`.`category`,`articles_article`.`subcategory` FROM `articles_article` WHERE ((`articles_article`.`id` = 7) OR (`articles_article`.`id` = 8)) ORDER BY `articles_article`.`volume` ASC, `articles_article`.`issue` ASC, `articles_article`.`page` ASC' I have been trying to find if such a bug was already reported to no avail. I do not follow the development of Django, so it might have already been fixed in the development version and I just didn't find it. Should I file a bug report? Best regards Beda --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---