Имеет много категорий без дублирования в родительских категориях
У меня есть три модели
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, поэтому я не уверен, что искать.