Структура моделей для хранения подмножества вариантов выбора, которые будут доступны в зависимости от редактируемой строки

Я создаю сайт, который отслеживает детали, эти детали относятся к подразделу проекта, обозначаемому кодами разделов. Я хочу иметь возможность ограничивать выбор кодов в зависимости от того, к какому проекту принадлежит деталь, но не уверен в том, как лучше хранить список допустимых кодов.

Я начал с:

class Project(models.Model):
  name = models.CharField(max_length=40)
  number = models.IntegerField()

class Section(models.Model):
  code = CharField(max_length=1)

class Part(models.Model):
  number = models.IntegerField()
  project = models.ForeignKey(Project, on_delete=models.PROTECT)
  section = models.ForeignKey(Section, on_delete=models.PROTECT)  

Проблема в том, что тогда все части будут выбирать из одного и того же списка кодов разделов.

--- edit1 ---

Подумав об этом немного больше, можно ли считать, что это много-ко-многим? У данного проекта много кодов, и данный код может применяться ко многим проектам.

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