Puoi definire un campo modello personalizzato derivato da models.CharField
.Questo campo potrebbe verificare la presenza di valori duplicati, ignorando il caso.
La documentazione sui campi personalizzati è qui http://docs.djangoproject.com/en/dev/howto/custom-model-fields/
Guarda http://code.djangoproject.com/browser/django/trunk/django/db/models/fields/files.py per un esempio di come creare un campo personalizzato sottoclasse di un campo esistente.
Potresti usare il modulo citext di PostgreSQL https://www.postgresql.org/docs/current/static/citext.html
Se usi questo modulo, il campo personalizzato potrebbe definire "db_type" come CITEXT per i database PostgreSQL.
Ciò porterebbe a un confronto senza distinzione tra maiuscole e minuscole per i valori univoci nel campo personalizzato.