def contribute_to_class(self, cls, name): super(DocTypeField, self).contribute_to_class(cls, name) attr = cls.__dict__[name] mfield = self.__mfield class Proxy(object): def __get__(self, obj, type=None): try: return attr.__get__(obj, type).name except DocType.DoesNotExist: return '' def __set__(self, obj, value): dt = DocType.make(name=value, model=cls, mfield=mfield) attr.__set__(obj, dt) setattr(cls, name, Proxy()) contribute_doc_metadata(cls, self.__mfield, type_mfield=name)
def contribute_to_class(self, cls, name): super(DocIndex, self).contribute_to_class(cls, name) contribute_doc_metadata(cls, self.__mfield, index_mfield=name) setattr(cls, '_has_doc_index', True)