I have basically a username is unique (case insensitive), but the case matters when displaying as provided by the user.
I have the following requirements:
You can also override "get_prep_value" by Django Models Field
class LowerCaseField:
def get_prep_value(self, value):
if isinstance(value, Promise):
value = value._proxy____cast()
if value:
value = value.strip().lower()
return value
class LCSlugField(LowerCaseField, models.SlugField):
pass
class LCEmailField(LowerCaseField, models.EmailField):
pass
email = LCEmailField(max_length=255, unique=True)