raising an AttributeError when an attribute is missing on a Model

This behavior has bitten us many times, and having just been bitten myself,
enough is enough. Correcting this silly behavior even revealed some tests that
were comparing None values instead of the values they actually wanted to test,
because the model provided a false positive on the attribute accesses.