Versión 0.0.6
This commit is contained in:
@@ -2,7 +2,7 @@ from __future__ import unicode_literals
|
||||
import datetime
|
||||
import copy
|
||||
|
||||
VERSION = "0.0.5"
|
||||
VERSION = "0.0.6"
|
||||
|
||||
|
||||
class classproperty(object):
|
||||
@@ -78,6 +78,7 @@ class F(object):
|
||||
class Q(QMixin):
|
||||
lookup_types = [
|
||||
'icontains', 'istartswith', 'iendswith',
|
||||
'contains', 'startswith', 'endswith',
|
||||
'year', 'month', 'day', 'week_day', 'hour', 'minute', 'second',
|
||||
'isnull', 'in']
|
||||
|
||||
@@ -127,13 +128,22 @@ class Q(QMixin):
|
||||
|
||||
if lookup in self.lookup_types:
|
||||
if lookup == "icontains":
|
||||
return "{0} like '%{1}%'".format(column, value)
|
||||
return "{0} LIKE '%{1}%'".format(column, value)
|
||||
|
||||
if lookup == "iendswith":
|
||||
return "{0} like '%{1}'".format(column, value)
|
||||
return "{0} LIKE '%{1}'".format(column, value)
|
||||
|
||||
if lookup == "istartwith":
|
||||
return "{0} like '{1}%'".format(column, value)
|
||||
if lookup == "istartswith":
|
||||
return "{0} LIKE '{1}%'".format(column, value)
|
||||
|
||||
if lookup == "contains":
|
||||
return "{0} LIKE BINARY '%{1}%'".format(column, value)
|
||||
|
||||
if lookup == "endswith":
|
||||
return "{0} LIKE BINARY '%{1}'".format(column, value)
|
||||
|
||||
if lookup == "startswith":
|
||||
return "{0} LIKE BINARY '{1}%'".format(column, value)
|
||||
|
||||
if lookup == "in":
|
||||
return "{0} in ({1})".format(column, self._get_value(value))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import unittest
|
||||
import datetime
|
||||
from . import Q, Queryset, F
|
||||
from sqlquerybuilder import Q, Queryset, F
|
||||
|
||||
|
||||
class TestSqlBuilder(unittest.TestCase):
|
||||
@@ -12,6 +12,15 @@ class TestSqlBuilder(unittest.TestCase):
|
||||
self.assertEqual(str(Q(a__isnull=True)), "(a is NULL)")
|
||||
self.assertEqual(str(Q(a__isnull=False)), "(a is NOT NULL)")
|
||||
|
||||
self.assertEqual(str(Q(a__startswith="a")), "(a LIKE BINARY 'a%')")
|
||||
self.assertEqual(str(Q(a__istartswith="a")), "(a LIKE 'a%')")
|
||||
|
||||
self.assertEqual(str(Q(a__endswith="a")), "(a LIKE BINARY '%a')")
|
||||
self.assertEqual(str(Q(a__iendswith="a")), "(a LIKE '%a')")
|
||||
|
||||
self.assertEqual(str(Q(a__contains="a")), "(a LIKE BINARY '%a%')")
|
||||
self.assertEqual(str(Q(a__icontains="a")), "(a LIKE '%a%')")
|
||||
|
||||
def test_dates(self):
|
||||
date = datetime.date(2010, 1, 15)
|
||||
self.assertEqual(str(Q(fecha=date)), "(fecha='2010-01-15')")
|
||||
|
||||
Reference in New Issue
Block a user