Löschen eines Objekts aus der Auflistung in SQLAlchemy

Ich speichere eine Reihe von Patentdaten in einer MySQL-Datenbank und interagiere mit dieser über SQLAlchemy. Ich habe eine Sammlung innerhalb der Patentklasse, die die Liste der Abtretungsempfänger darstellt (die Unternehmen, denen das Patent erteilt wurde):

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

Ich bearbeite einige der in der Datenbank gespeicherten Objekte und ein PatentobjektpIch möchte einen Rechtsnachfolger löschena (ein Unternehmensgegenstand) vonpListe der Bevollmächtigten. Basiert aufhttp://docs.sqlalchemy.org/en/latest/orm/session.html#deleting-from-collections Es scheint, als würde er anrufens.delete(a) wird tatsächlich das Firmenobjekt löschena. Ich möchte einfach den Rechtsnachfolger entfernena aus der Liste der Zuständigen fürp (d. h. entfernen Sie eine Zeile in der patent_company_table). Löschen Sie das Company-Objekt NICHT, weila möglicherweise in der Liste der Rechtsnachfolger eines anderen Patentgegenstandes.

Ich habe versucht, eine neue Liste zu erstellennew_assignees das schließt nur die Empfänger von einp Außerdema und dann angerufen:

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

Dies markiert leider eigentlich nichtp als schmutzig, also nehme ich an, es würde die Datenbank nicht beeinflussen.

Haben Sie Vorschläge, wie Sie ein Objekt aus der Sammlung entfernen und die Zeile in der patent_company_table löschen können, anstatt das Objekt aus der Company-Tabelle zu löschen?

Vielen Dank.

AKTUALISIEREN

Hier ist ein Ausschnitt aus dem Code:

<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>

Nachdem alle Patente durchlaufen wurden,added_patent_count = 983672 aber es sind keine Objekte insession.dirty(). Muss ich nach der Änderung über manuell zur Sitzung hinzufügen?append oderremove?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage