Excluindo um objeto da coleção no SQLAlchemy

Eu estou armazenando um monte de dados de patentes em um banco de dados MySQL e interagindo com ele via SQLAlchemy. Eu tenho uma coleção dentro da classe Patent que representa a lista de cessionários (as empresas que receberam a patente):

<code>assignees = relationship('Company', secondary=patent_company_table, backref='patents')
</code>

Estou processando alguns dos objetos armazenados no banco de dados e para um objeto de patentep, Quero excluir algum destinatárioa (um objeto da empresa) deplista de cessionários. Baseado fora dehttp://docs.sqlalchemy.org/en/latest/orm/session.html#deleting-from-collections , parece que chamars.delete(a) irá realmente excluir o objeto da empresaa. Eu simplesmente quero remover o cessionárioa da lista de cessionários parap (isto é, remover uma linha na patent_company_table), NÃO realmente excluir o objeto Company, porquea pode estar na lista de destinatários de outro objeto de patente.

Eu tentei criar uma nova listanew_assignees que inclui apenas os cessionários dep além dea e depois chamado:

<code>p.assignees = new_assignees
s.add(p)
</code>

Isso infelizmente não marcap tão sujo, então eu suponho que não afetaria o banco de dados.

Você tem alguma sugestão sobre como remover um objeto da coleção, excluindo a linha na patent_company_table ao invés de excluir o objeto da tabela Company?

Obrigado.

ATUALIZAR

Aqui está um trecho do código:

<code>assignees = patent.assignees
for assignee in assignees:
    if assignee in duplicate_company_to_default:
        patent.assignees.remove(assignee)
        default_company = duplicate_company_to_default[assignee]
        if default_company not in assignees:
            added_patent_count += 1
            patent.assignees.append(default_company)
</code>

Depois de percorrer todas as patentes,added_patent_count = 983672 mas não há objetos emsession.dirty(). Preciso adicionar manualmente à sessão depois de modificar viaappend ouremove?

questionAnswers(2)

yourAnswerToTheQuestion