Django vergleicht Modellinstanzen auf Gleichheit

Ich verstehe, dass, mit einer singleton-situation, die Sie durchführen können, eine solche operation als:

spam == eggs

und wenn spam und eggs sind Instanzen der gleichen Klasse mit dem gleichen Attribut-Werte zurück True. In einem Django-Modell, das ist natürlich, weil sich zwei separate Instanzen des Modells werden nicht immer die gleichen, es sei denn, Sie haben die gleichen .pk Wert.

Das problem mit diesem ist, dass, wenn ein Verweis auf eine Instanz hat Attribute, die aktualisiert wurden, von der middleware irgendwo auf dem Weg und es wurde nicht gespeichert, und Sie versuchen, es auf eine andere variable mit einem Verweis auf eine Instanz des gleichen Modells, wird es wieder False natürlich, weil Sie verschiedene Werte für einige Attribute. Natürlich glaube ich nicht, sowas braucht ein singleton , aber ich Frage mich, ob es einige offizielle Djangonic (ha, neues Wort) Methode, die für die überprüfung dieser, oder sollte ich einfach schauen, dass die .pk Wert ist das gleiche mit:

spam.pk == eggs.pk

Tut mir Leid, wenn das war eine riesige Verschwendung von Zeit, aber es scheint nur, wie es sein könnte, eine Methode, dies zu tun, und etwas vermisse ich, dass ich bereuen werde, die Straße hinunter, wenn ich es nicht finden.

UPDATE (02-27-2015)

Sollten Sie ignorieren den ersten Teil dieser Frage, da sollte man nicht vergleichen singletons mit ==sondern mit is. Singletons eigentlich nichts zu tun haben mit dieser Frage.

InformationsquelleAutor der Frage orokusaki | 2010-03-25

Schreibe einen Kommentar