Имеет много категорий без дублирования в родительских категориях

У меня есть три модели

class Offer:


class OfferBonus:
    offer_bonus_category = models.ManyToManyField(OfferBonusCategory)
    offer = models.ForeignKey(Offer, on_delete=models.CASCADE, blank=True, null=True)

class OfferBonusCategories:
    category_title = models.CharField(max_length=60,null=True, blank=True)
    category_description = models.TextField(null=True, blank=True)

Каждое предложение может иметь несколько OfferBonuses и каждый OfferBonus может иметь несколько OfferBonusCategories. Предложение 1 может иметь один бонус в категориях A и B и другой бонус в категориях C и D. Предложение 1 не может иметь OfferBonus в A и C и другой OfferBonus в B и C. Существование первого OfferBonus в A и C не позволит добавить последующий OfferBonus в A или C при добавлении в администраторском интерфейсе.

Итак, мой вопрос заключается в том, как ограничить OfferBonus так, чтобы он учитывал другие записи в предложении, чтобы каждая категория OfferBonusCategory могла быть использована только один раз во всех OfferBonus. Есть ли способ сделать это из коробки в Django Admin, где отображаемые категории будут отключены при последующем добавлении записей?

Если это должно быть сделано на заказ, не могли бы вы направить меня на "правильный путь"? Я новичок в Python и Django, поэтому я не уверен, что искать.

Вернуться на верх