SQLAlchemy AssertionError: правило зависимости попыталось очистить столбец первичного ключа - PullRequest
0 голосов
/ 26 мая 2020

из-за следующей строки: contact_person.selections_to_persons[selection_id].post_address = address

Я получаю следующую ошибку при следующей фиксации:

AssertionError: Правило зависимости попыталось очистить столбец первичного ключа selections_to_persons.t_person_to_department_id 'on instance' '

Важные части задействованных моделей:

class SelectionToPerson(OrmModelBase, TableModelBase):
    __tablename__ = 'selections_to_persons'
    __table_args__ = (
        ForeignKeyConstraint(
            ["address_tablename",
             "address_id",
             "t_person_to_department_id"],

            ["address_collection.tablename",
             "address_collection.id",
             "address_collection.t_person_to_department_id"],
            name="fk_post_address_selection_to_person", use_alter=True
        ),
    )

    selection_id = Column(Integer,
                          ForeignKey('selections.selection_id',
                                     onupdate=NO_ACTION,
                                     ondelete=CASCADE),
                          primary_key=True, nullable=False)
    t_person_to_department_id = Column(
        Integer,
        ForeignKey('t_persons_to_departments.t_person_to_department_id',
                   onupdate=NO_ACTION,
                   ondelete=CASCADE),
        primary_key=True,
        nullable=False)
    address_tablename = Column(String, nullable=False)
    address_id = Column(Integer, nullable=False)

    post_address = relationship(AddressCollection)

class AddressCollection(OrmModelBase, ViewModelBase):
    __tablename__ = 'address_collection'

    tablename = Column(String, primary_key=True)
    id = Column(Integer, primary_key=True)

    t_person_to_department_id = Column(
        Integer,
        ForeignKey('t_persons_to_departments.t_person_to_department_id'),
        primary_key=True)

Кто-нибудь знает, почему возникает эта ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...