def find(name): if extra_fields and name in extra_fields: return FieldPlaceholder(extra_fields[name]) p = props.get(name) if p is not None: return p raise ValueError('Invalid model property name %s.%s' % (model, name))
def find(name): # If field is in extra_fields, it has higher priority if extra_fields and name in extra_fields: return FieldPlaceholder(extra_fields[name]) # Try to look it up in properties list first p = props.get(name) if p is not None: return p # If it is hybrid property or alias, look it up in a model itself p = getattr(model, name, None) if p is not None and hasattr(p, 'property'): return p.property raise ValueError('Invalid model property name %s.%s' % (model, name))