Вставить, используя только родительский интерфейс - PullRequest
0 голосов
/ 20 января 2020

У меня есть таблица наследования sqlalchemy , и я получаю json с атрибутами из этой таблицы, но у меня есть некоторые атрибуты, принадлежащие дочернему элементу, а другие атрибуты другому дочернему элементу , я сомневаюсь, что я могу заполнить дочерние таблицы, используя только родительский интерфейс, используя, например, столбец типа

class SerialInterface(sql.Model):
    type = sql.Column(sql.String(50))
    polymorphic_identity = {
        'polymorphic_identity': 'serial_interface',
        'polymorphic_on': type,
    }

    id = sql.Column(types.Integer, primary_key=True)
    transmission_rate = sql.Column(types.Integer)

    mad_id = sql.Column(types.Integer, sql.ForeignKey('mad.id'))

    serial_protocol = sql.relationship(SerialProtocol, uselist=False, cascade="all, delete-orphan")


class RS485(SerialInterface):
    polymorphic_identity = {
        'polymorphic_identity': 'RS485',
    }
    parity = sql.Column(EnumSmart(Parity))
    data_bits = sql.Column(types.Integer)
    stop_bits = sql.Column(types.Integer)

class RS232(SerialInterface):
    polymorphic_identity = {
        'polymorphic_identity': 'RS232',
    }
    ...#other columns

Например, я получаю этот dict: {"mad_id": 1, type: "RS485", "transmission_rate": "9600","data_bits":"8","parity": "E", "stop_bits": "2"} и в том же URL-адресе мне нужно поместить это данные в RS485 классе, используя SerialInterface Class

...