zenwalker
6/29/2016 - 5:01 AM

proxy_field.py

class ProxyField:
    def __init__(self, to):
        self.to_object, self.to_object_field = to.split('.')

    def __get__(self, instance, owner):
        if instance is None:
            return self
        return getattr(self.delegate(instance), self.to_object_field)

    def delegate(self, instance):
        return getattr(instance, self.to_object)