Looks at model attributes directly instead of calling has

Fixes an issue with null properties (which might exist but aren't
recognized by has())