Vielleicht, abhängig von der Implementierung der Vergleichsfunktion.
Sie müssen vorsichtig sein, wenn Sie __eq__
oder __cmp__
für den Vergleich mit dem Objekt other
verwenden, da SQLAlchemy Ihr Objekt mit einigen Symbolen wie NEVER_SET
vergleichen kann, die nicht den gleichen Typ haben. Sehen Sie sich diese SQLAlchemy-Methode an:
Die Zeile original not in (NEVER_SET, PASSIVE_NO_RESULT, None)
kann einen Fehler verursachen, wenn der Vergleich nicht zuerst die Gleichheit der Typen oder das Vorhandensein der Felder überprüft, die im Vergleich verwendet werden.
Als Lösung sollten Sie unterschiedliche Typen berücksichtigen.
Vermeiden Sie auch das Überschreiben von __cmp__
und verwenden Sie stattdessen Rich-Vergleichsoperatoren .
Tags und Links python sqlalchemy