from django.db.models import fields, SubfieldBase
+from ldapdb import escape_ldap_filter
+
class CharField(fields.CharField):
def __init__(self, *args, **kwargs):
kwargs['max_length'] = 200
super(CharField, self).__init__(*args, **kwargs)
- def get_db_prep_value(self, value):
- """Returns field's value prepared for interacting with the database
- backend.
-
- Used by the default implementations of ``get_db_prep_save``and
- `get_db_prep_lookup```
- """
- return value.replace('\\', '\\5c') \
- .replace('*', '\\2a') \
- .replace('(', '\\28') \
- .replace(')', '\\29') \
- .replace('\0', '\\00')
-
+ def get_prep_lookup(self, lookup_type, value):
+ return escape_ldap_filter(value)
+
class ImageField(fields.Field):
pass