Commits

Anonymous committed 4c421df

[soc2010/query-refactor] Implemented __in.

  • Participants
  • Parent commits bee387e
  • Branches soc2010/query-refactor

Comments (0)

Files changed (2)

django/contrib/mongodb/compiler.py

         "lt": lambda params, value_annotation, negated: {"$lt": params[0]},
         "isnull": lambda params, value_annotation, negated: {"$ne": None} if value_annotation == negated else None,
         "gt": lambda params, value_annotation, negated: {"$gt": params[0]},
+        "in": lambda params, value_annotation, negated: {"$in": params},
     }
     
     def __init__(self, query, connection, using):

tests/regressiontests/mongodb/tests.py

             ],
             lambda g: g.name,
         )
+    
+    def test_in(self):
+        q = Group.objects.create(name="Queen", year_formed=1971)
+        e = Group.objects.create(name="The E Street Band", year_formed=1972)
+        
+        self.assertQuerysetEqual(
+            Group.objects.filter(year_formed__in=[1972]), [
+                "The E Street Band",
+            ],
+            lambda g: g.name,
+        )
+        
+        self.assertQuerysetEqual(
+            Group.objects.filter(year_formed__in=[1972, 1971]), [
+                "Queen",
+                "The E Street Band",
+            ],
+            lambda g: g.name
+        )
+        
+        self.assertQuerysetEqual(
+            Group.objects.exclude(year_formed__in=[1972]), [
+                "Queen",
+            ],
+            lambda g: g.name,
+        )