Предположим, у меня есть Абстрактная модель:
class SoftDelete(models.Model):
_active = models.NullBooleanField(default=True)
class Meta:
abstract = True
И модель, которая наследует от этой абстрактной модели:
class SomeModel(AbstractModel):
some_field = models.IntegerField()
class Meta:
unique_together = ('_active', 'some_field')
Здесь я ограничил some_field
с помощью _active
поле с использованием unique_together, которое используется имеющейся у меня функцией мягкого удаления.
Это работает и все, кроме того, теперь каждая модель, у которой есть уникальное ограничение, должна применять _active
к уникальности, так как после удаленияна самом деле он не удален, только _active = None
.
У меня вопрос , так как все мои модели будут наследоваться от SoftDelete
, существует ли эффективный способ применения _active
ко всем моделям, которыеимеют в своих Metas ограничение unique_together?Вместо того, чтобы вручную добавлять его и, возможно, забыть об этом.
Я надеялся добавить что-то вроде ниже в мета-класс резюме:
For unique_together in child_unique_together:
unique_together.append('_active')