Sorry I don't know what you mean by that.
Have a look at the field clean implementation
https://github.com/django/django/blob/master/django/db/models/fields/__init__.py#L502
It expects a model_instance as second argument.

I have to admit that I used the *hasattr(...)" mainly to have the tests pass, one tests uses an instance that is not a model instance.