mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2025-02-19 18:00:32 +03:00
fix field name parsing when field contains double underscore #69
This commit is contained in:
parent
3cd3e1ec83
commit
d7382e1ce2
|
@ -157,7 +157,11 @@ class FOV(object):
|
|||
|
||||
def __init__(self, field_name, operator, value):
|
||||
self._field_name = field_name
|
||||
self._operator = _operators[operator]
|
||||
self._operator = _operators.get(operator)
|
||||
if self._operator is None:
|
||||
# The field name contains __ like my__field
|
||||
self._field_name = field_name + '__' + operator
|
||||
self._operator = _operators['eq']
|
||||
self._value = value
|
||||
|
||||
def to_sql(self, model_cls):
|
||||
|
|
|
@ -334,6 +334,20 @@ class AggregateTestCase(TestCaseWithData):
|
|||
print(qs.as_sql())
|
||||
self.assertEquals(qs.count(), 1)
|
||||
|
||||
def test_double_underscore_field(self):
|
||||
class Mdl(Model):
|
||||
the__number = Int32Field()
|
||||
the__next__number = Int32Field()
|
||||
engine = Memory()
|
||||
qs = Mdl.objects_in(self.database).filter(the__number=1)
|
||||
self.assertEquals(qs.conditions_as_sql(), 'the__number = 1')
|
||||
qs = Mdl.objects_in(self.database).filter(the__number__gt=1)
|
||||
self.assertEquals(qs.conditions_as_sql(), 'the__number > 1')
|
||||
qs = Mdl.objects_in(self.database).filter(the__next__number=1)
|
||||
self.assertEquals(qs.conditions_as_sql(), 'the__next__number = 1')
|
||||
qs = Mdl.objects_in(self.database).filter(the__next__number__gt=1)
|
||||
self.assertEquals(qs.conditions_as_sql(), 'the__next__number > 1')
|
||||
|
||||
|
||||
Color = Enum('Color', u'red blue green yellow brown white black')
|
||||
|
||||
|
@ -351,3 +365,5 @@ class SampleModel(Model):
|
|||
class Numbers(Model):
|
||||
|
||||
number = UInt64Field()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user