Пример #1
0
    def __delitem__(self, name):
        field = self.schema[name]
        field.interface = None
        del self.schema._InterfaceClass__attrs[name]

        sch = getUtility(ISchemaType, self.__context__.oid)
        for column in storage.mapFieldToColumns(field):
            getattr(sch.Type.__table__.c, column.name).drop()

        self.updateSchema()
Пример #2
0
    def __setitem__(self, name, field):
        field.__name__ = name

        if self.schema._InterfaceClass__attrs.has_key(name):
            raise KeyError('Field already exists %s'%name)

        self.schema._InterfaceClass__attrs[name] = field

        sch = getUtility(ISchemaType, self.__context__.oid)
        for column in storage.mapFieldToColumns(field):
            column.create(sch.Type.__table__, populate_default=True)

        self.updateSchema()