當前位置: 首頁>>代碼示例>>Python>>正文


Python Query.build_where方法代碼示例

本文整理匯總了Python中django.db.models.sql.query.Query.build_where方法的典型用法代碼示例。如果您正苦於以下問題:Python Query.build_where方法的具體用法?Python Query.build_where怎麽用?Python Query.build_where使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在django.db.models.sql.query.Query的用法示例。


在下文中一共展示了Query.build_where方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_simple_query

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_simple_query(self):
     query = Query(Author)
     where = query.build_where(Q(num__gt=2))
     lookup = where.children[0]
     self.assertIsInstance(lookup, GreaterThan)
     self.assertEqual(lookup.rhs, 2)
     self.assertEqual(lookup.lhs.target, Author._meta.get_field('num'))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:9,代碼來源:test_query.py

示例2: _get_condition_sql

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def _get_condition_sql(self, model, schema_editor):
     if self.condition is None:
         return None
     query = Query(model=model)
     where = query.build_where(self.condition)
     compiler = query.get_compiler(connection=schema_editor.connection)
     sql, params = where.as_sql(compiler, schema_editor.connection)
     return sql % tuple(schema_editor.quote_value(p) for p in params)
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:10,代碼來源:constraints.py

示例3: constraint_sql

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def constraint_sql(self, model, schema_editor):
     query = Query(model)
     where = query.build_where(self.check)
     connection = schema_editor.connection
     compiler = connection.ops.compiler('SQLCompiler')(query, connection, 'default')
     sql, params = where.as_sql(compiler, connection)
     params = tuple(schema_editor.quote_value(p) for p in params)
     return schema_editor.sql_check_constraint % {'check': sql % params}
開發者ID:RaphaelKimmig,項目名稱:django,代碼行數:10,代碼來源:constraints.py

示例4: test_transform

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_transform(self):
     query = Query(Author)
     with register_lookup(CharField, Lower):
         where = query.build_where(~Q(name__lower='foo'))
     lookup = where.children[0]
     self.assertIsInstance(lookup, Exact)
     self.assertIsInstance(lookup.lhs, Lower)
     self.assertIsInstance(lookup.lhs.lhs, SimpleCol)
     self.assertEqual(lookup.lhs.lhs.target, Author._meta.get_field('name'))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:11,代碼來源:test_query.py

示例5: test_multiple_fields

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_multiple_fields(self):
     query = Query(Item)
     where = query.build_where(Q(modified__gt=F('created')))
     lookup = where.children[0]
     self.assertIsInstance(lookup, GreaterThan)
     self.assertIsInstance(lookup.rhs, SimpleCol)
     self.assertIsInstance(lookup.lhs, SimpleCol)
     self.assertEqual(lookup.rhs.target, Item._meta.get_field('created'))
     self.assertEqual(lookup.lhs.target, Item._meta.get_field('modified'))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:11,代碼來源:test_query.py

示例6: test_negated_nullable

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_negated_nullable(self):
     query = Query(Item)
     where = query.build_where(~Q(modified__lt=datetime(2017, 1, 1)))
     self.assertTrue(where.negated)
     lookup = where.children[0]
     self.assertIsInstance(lookup, LessThan)
     self.assertEqual(lookup.lhs.target, Item._meta.get_field('modified'))
     lookup = where.children[1]
     self.assertIsInstance(lookup, IsNull)
     self.assertEqual(lookup.lhs.target, Item._meta.get_field('modified'))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:12,代碼來源:test_query.py

示例7: test_foreign_key_exclusive

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_foreign_key_exclusive(self):
     query = Query(ObjectC)
     where = query.build_where(Q(objecta=None) | Q(objectb=None))
     a_isnull = where.children[0]
     self.assertIsInstance(a_isnull, RelatedIsNull)
     self.assertIsInstance(a_isnull.lhs, SimpleCol)
     self.assertEqual(a_isnull.lhs.target, ObjectC._meta.get_field('objecta'))
     b_isnull = where.children[1]
     self.assertIsInstance(b_isnull, RelatedIsNull)
     self.assertIsInstance(b_isnull.lhs, SimpleCol)
     self.assertEqual(b_isnull.lhs.target, ObjectC._meta.get_field('objectb'))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:13,代碼來源:test_query.py

示例8: test_complex_query

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
    def test_complex_query(self):
        query = Query(Author)
        where = query.build_where(Q(num__gt=2) | Q(num__lt=0))
        self.assertEqual(where.connector, OR)

        lookup = where.children[0]
        self.assertIsInstance(lookup, GreaterThan)
        self.assertEqual(lookup.rhs, 2)
        self.assertEqual(lookup.lhs.target, Author._meta.get_field('num'))

        lookup = where.children[1]
        self.assertIsInstance(lookup, LessThan)
        self.assertEqual(lookup.rhs, 0)
        self.assertEqual(lookup.lhs.target, Author._meta.get_field('num'))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:16,代碼來源:test_query.py

示例9: test_simplecol_query

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
    def test_simplecol_query(self):
        query = Query(Author)
        where = query.build_where(Q(num__gt=2, name__isnull=False) | Q(num__lt=F('id')))

        name_isnull_lookup, num_gt_lookup = where.children[0].children
        self.assertIsInstance(num_gt_lookup, GreaterThan)
        self.assertIsInstance(num_gt_lookup.lhs, SimpleCol)
        self.assertIsInstance(name_isnull_lookup, IsNull)
        self.assertIsInstance(name_isnull_lookup.lhs, SimpleCol)

        num_lt_lookup = where.children[1]
        self.assertIsInstance(num_lt_lookup, LessThan)
        self.assertIsInstance(num_lt_lookup.rhs, SimpleCol)
        self.assertIsInstance(num_lt_lookup.lhs, SimpleCol)
開發者ID:MattBlack85,項目名稱:django,代碼行數:16,代碼來源:test_query.py

示例10: test_foreign_key_f

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_foreign_key_f(self):
     query = Query(Ranking)
     with self.assertRaises(FieldError):
         query.build_where(Q(rank__gt=F('author__num')))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:6,代碼來源:test_query.py

示例11: test_foreign_key

# 需要導入模塊: from django.db.models.sql.query import Query [as 別名]
# 或者: from django.db.models.sql.query.Query import build_where [as 別名]
 def test_foreign_key(self):
     query = Query(Item)
     msg = 'Joined field references are not permitted in this query'
     with self.assertRaisesMessage(FieldError, msg):
         query.build_where(Q(creator__num__gt=2))
開發者ID:EmadMokhtar,項目名稱:django,代碼行數:7,代碼來源:test_query.py


注:本文中的django.db.models.sql.query.Query.build_where方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。