Skip to content

Django contains operator not working (LIKE) #637

@muriloventuroso

Description

@muriloventuroso

Operations like __contains, __icontains, __startswith and __endswith are not working.

Python script

User.objects.filter(username__icontains="admin")

Traceback

Traceback (most recent call last):
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/query.py", line 926, in parse
    return handler(self, statement)
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/query.py", line 1002, in _select
    return SelectQuery(self.db, self.connection_properties, sm, self._params)
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/query.py", line 121, in __init__
    super().__init__(*args)
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/query.py", line 67, in __init__
    self.parse()
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/query.py", line 157, in parse
    self.where = WhereConverter(self, statement)
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/converters.py", line 28, in __init__
    self.parse()
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/converters.py", line 120, in parse
    self.op = WhereOp(
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/operators.py", line 501, in __init__
    self._statement2ops()
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/operators.py", line 454, in _statement2ops
    op = self._token2op(tok, statement)
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/operators.py", line 421, in _token2op
    op = CmpOp(tok, self.query)
  File "/home/muriloventuroso/Dev/Python/sgc-env/lib/python3.10/site-packages/djongo/sql2mongo/operators.py", line 535, in __init__
    self._operator = OPERATOR_MAP[self.statement.token_next(0)[1].value]
KeyError: 'iLIKE'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions