Skip to content

Commit 3efa619

Browse files
committed
[soc2010/query-refactor] Implemented __in.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/query-refactor@13384 bcc190cf-cafb-0310-a4f2-bffc1f526a37
1 parent 9a895a6 commit 3efa619

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

django/contrib/mongodb/compiler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class SQLCompiler(object):
1010
"lt": lambda params, value_annotation, negated: {"$lt": params[0]},
1111
"isnull": lambda params, value_annotation, negated: {"$ne": None} if value_annotation == negated else None,
1212
"gt": lambda params, value_annotation, negated: {"$gt": params[0]},
13+
"in": lambda params, value_annotation, negated: {"$in": params},
1314
}
1415

1516
def __init__(self, query, connection, using):

tests/regressiontests/mongodb/tests.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,3 +258,29 @@ def test_gt(self):
258258
],
259259
lambda g: g.name,
260260
)
261+
262+
def test_in(self):
263+
q = Group.objects.create(name="Queen", year_formed=1971)
264+
e = Group.objects.create(name="The E Street Band", year_formed=1972)
265+
266+
self.assertQuerysetEqual(
267+
Group.objects.filter(year_formed__in=[1972]), [
268+
"The E Street Band",
269+
],
270+
lambda g: g.name,
271+
)
272+
273+
self.assertQuerysetEqual(
274+
Group.objects.filter(year_formed__in=[1972, 1971]), [
275+
"Queen",
276+
"The E Street Band",
277+
],
278+
lambda g: g.name
279+
)
280+
281+
self.assertQuerysetEqual(
282+
Group.objects.exclude(year_formed__in=[1972]), [
283+
"Queen",
284+
],
285+
lambda g: g.name,
286+
)

0 commit comments

Comments
 (0)