Only allow QNode instances to be passed as query objects
This commit is contained in:
parent
ab4d4e6230
commit
148f8b8a3a
@ -423,6 +423,9 @@ class QuerySet(object):
|
||||
"""
|
||||
query = Q(**query)
|
||||
if q_obj:
|
||||
# make sure proper query object is passed
|
||||
if not isinstance(q_obj, QNode):
|
||||
raise InvalidQueryError('Not a query object: %s. Did you intend to use key=value?' % q_obj)
|
||||
query &= q_obj
|
||||
self._query_obj &= query
|
||||
self._mongo_query = None
|
||||
|
@ -1289,6 +1289,14 @@ class QuerySetTest(unittest.TestCase):
|
||||
self.assertEqual(len(self.Person.objects(Q(age__in=[20]))), 2)
|
||||
self.assertEqual(len(self.Person.objects(Q(age__in=[20, 30]))), 3)
|
||||
|
||||
# Test invalid query objs
|
||||
def wrong_query_objs():
|
||||
self.Person.objects('user1')
|
||||
def wrong_query_objs_filter():
|
||||
self.Person.objects('user1')
|
||||
self.assertRaises(InvalidQueryError, wrong_query_objs)
|
||||
self.assertRaises(InvalidQueryError, wrong_query_objs_filter)
|
||||
|
||||
def test_q_regex(self):
|
||||
"""Ensure that Q objects can be queried using regexes.
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user