I would classify this as a bug, or at least warranting mention in the documentation - it causes the appadmin to break for the including tables, which is very confusing.
This is specifically for the "unique=True", whose validator is "IS_NOT_IN_DB()". Perhaps a better solution would be a "UNIQUE()" constraint, which tries to do an IS_NOT_IN_DB(), but fails in a more user-friendly way? Alternatively, the IS_NOT_IN_DB() could just fail with a reason, rather than raise an exception in this case?

