Я реализую первый параметр, описанный в «Маркировка для удаления в Django» , то есть когда объект больше не активен, я устанавливаю логическое значение, чтобы пометить его как неактивный.
Конкретная причина, по которой я использую этот метод, заключается в том, что, хотя объект больше не используется активно, на него все же можно ссылаться и отображать в различных записях и отчетах. Я не хочу, чтобы пульсация Django удаляла старые записи.
Как мне обеспечить уникальность активных объектов?
Изначально я подумал, что должен использовать unique_together
для усиления моих ограничений на уровне базы данных. Это работает нормально, пока я не удаляю объект, после чего добавление нового активного объекта с тем же именем нарушает требование уникальности. Я мог бы просто пометить объект как активный, но я действительно хочу новый объект.
Я ищу что-то, что позволило бы мне сказать что-то вроде "уникально вместе, когда активно = Истина". Я мог бы применить это в коде создания модели, но кажется, что применение этого на уровне базы данных - лучшая идея.
Любой совет, какой из них является лучшим подходом? Есть лучшие предложения?
Примечание: django-reversion - это круто, но полностью не работает для моего приложения, так как мне НЕОБХОДИМО время от времени получать доступ к "удаленным" объектам.