Open LakshmiPrabhaN opened 1 year ago
the same thing happens to me with the "+" character
Code
self.to_match = re.sub(r'([]()[{}.*+^$?|\/])', r'\\\g<1>', self.to_match)
Only add one line to operators.py.
Code
self.to_match = re.escape(self.to_match)
I also found a solution in #620. This is a more simple way!
If you are using the older version (not master) of 1.3.6, you can modify operators.py as #620.
OffTopic:
t translates the query as the following filter: { channel: { '$regex': '^."Admin (role)".$' } }
How can i see the translated query from ORM to mongoDB? looking for too much time now :(
One line description of the issue __contains in filter does not support parenthesis and gives empty queryset as a result
Example, i need to get this object { "channel": '["Admin (role)"]' }
Python script
models.py
`from djongo import models import jsonfield
class word(models.Model): channel = jsonfield.JSONField()`
views.py
queryset = word.objects.filter(channel__contains="Admin (role)")
It translates the query as the following
filter: { channel: { '$regex': '^.*"Admin (role)".*$' } }
But we need the translated query
filter: { channel: { '$regex': '^.*"Admin \\(role\\)".*$' } }
Also tried
word.objects.filter(channel__contains="Admin \\(role\\)")
but it is not workingEnv
Django==2.2.24 django-jsonfield==1.4.1 djangorestframework==3.11.0 djongo==1.3.6 dnspython==2.3.0 pymongo==3.12.1 pytz==2022.7.1 six==1.16.0 sqlparse==0.2.4