Я предполагаю, что ваш вариант использования заключается в том, что вы заботитесь только об уникальности в некотором отношении с большой группой - например, вам не нужны глобально уникальные слагы, поэтому unique=True
"слишком уникально", вам нужно только уникальные слизни для каждого Category
в пределах CategoryGroup
.
Я бы предложил переопределить Category.save()
. Вы можете проверить self.pk
, чтобы увидеть, является ли это вставкой или обновлением, и если это вставка, вы можете вызвать свой пользовательский код уникальной проверки и генерации слагов, прежде чем вызывать super(Category, self).save(*args, **kwargs)
.