Я понимаю, что в ситуации singleton вы можете выполнить такую операцию, как:
spam == eggs
и если spam
и eggs
являются экземплярами одного и того же класса со всеми одинаковыми значениями атрибутов, он возвращает True
. В модели Django это естественно, потому что два отдельных экземпляра модели никогда не будут одинаковыми, если они не имеют одинаковое значение .pk
.
Проблема заключается в том, что если ссылка на экземпляр имеет атрибуты, которые были обновлены промежуточным программным обеспечением где-то на этом пути, и оно не было сохранено, и вы пытаетесь выполнить его с другой переменной, содержащей ссылку на экземпляр той же модели, он вернет False
, конечно, потому что у них разные значения для некоторых атрибутов. Очевидно, мне не нужно что-то вроде singleton, но мне интересно, есть ли какой-нибудь официальный метод Djangonic (ha, новое слово) для проверки этого, или если я должен просто проверить, что значение .pk
совпадает с:
spam.pk == eggs.pk
Извините, если это была огромная трата времени, но похоже, что может быть метод для этого, и что-то мне не хватает, что я буду сожалеть по дороге, если не найду он.
ОБНОВЛЕНИЕ (02-27-2015)
Вы должны игнорировать первую часть этого вопроса, так как вам не следует сравнивать одиночные числа с ==
, а скорее с is
. Синглтоны действительно не имеют никакого отношения к этому вопросу.