Open attieretief opened 4 years ago
Hi @attieretief This is a great point. I also implemented this for my own use as well as a related "lacks" or "does not contain" method. I'm including it below in case you find it helpful.
def contains(self, value):
"""Extend the StringProperty with contains method"""
value = self.escape_value(value)
return u'contains({0}, {1})'.format(self.name, value)
def lacks(self, value):
"""Does not contain"""
value = self.escape_value(value)
return u'not(contains({0}, {1}))'.format(self.name, value)
This project looks to be no longer maintained, i have forked it here and tried to add (some) of your suggested functionality. I've also published it to PyPi as python-odata, if you're interested.
The ODATAV4 standard supports the string function "contains"
http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions-complete.html#_Toc444868693
See 11.2.5.1.2 Built-in Query Functions in the following section
http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Toc453752288
If implemented exactly the same way as this project already implements "startswith" and "endswith", then wildcard search on specified attributes can be used.
This was achieved by modifiying property.py