{"id":110,"date":"2009-08-11T10:09:17","date_gmt":"2009-08-11T08:09:17","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=110"},"modified":"2009-10-04T22:17:22","modified_gmt":"2009-10-04T20:17:22","slug":"petits-tips-concernant-django-db-models-q-le-q-identite","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2009\/08\/11\/petits-tips-concernant-django-db-models-q-le-q-identite\/","title":{"rendered":"Petits tips concernant django.db.models.Q : le Q identit\u00e9."},"content":{"rendered":"<p>Il peut arriver que l&#8217;on doive &#8216;calculer&#8217; un crit\u00e8re de filtrage Q en combinant plusieurs Q dont les conditions seraient saisis par l&#8217;utilisateur. On se retrouve \u00e0 faire des choses du style<\/p>\n<div class=\"codecolorer-container python default\" style=\"overflow:auto;white-space:nowrap;width:435px;\"><div class=\"python codecolorer\"><span class=\"kw1\">for<\/span> one_q <span class=\"kw1\">in<\/span> q_list :<br \/>\n&nbsp; &nbsp; full_q &amp;<span class=\"sy0\">=<\/span> one_q<\/div><\/div>\n<p>La question est de savoir comment initialiser full_q avant de commencer la boucle. La r\u00e9ponse est toute simple, il existe un filtre Q identit\u00e9, qui ne trie donc rien, c&#8217;est tout simplement Q ()<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il peut arriver que l&#8217;on doive &#8216;calculer&#8217; un crit\u00e8re de filtrage Q en combinant plusieurs Q dont les conditions seraient saisis par l&#8217;utilisateur. On se retrouve \u00e0 faire des choses du style for one_q in q_list : &nbsp; &nbsp; full_q &amp;= one_q La question est de savoir comment initialiser full_q avant de commencer la boucle. &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2009\/08\/11\/petits-tips-concernant-django-db-models-q-le-q-identite\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Petits tips concernant django.db.models.Q : le Q identit\u00e9.<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[99,98],"class_list":["post-110","post","type-post","status-publish","format-standard","hentry","category-django","tag-django","tag-python"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-1M","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=110"}],"version-history":[{"count":12,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/110\/revisions"}],"predecessor-version":[{"id":300,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/110\/revisions\/300"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}