'Return a set of the names of the properties defined on the model.'

@cached_property
def _property_names(self):

    names = []
    for name in dir(self.model):
        attr = inspect.getattr_static(self.model, name)
        if isinstance(attr, property):
            names.append(name)
    return frozenset(names)
