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 use citext postgres type instead and not bother anymore with any sort of iexact. Just make a note in model that underlying field is case insensitive. Much easier solution.