Разница в дизайне моделей Django: соединение нескольких простых моделей

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

Предположим, у меня есть модель Industry, которая имеет несколько Locations.

Банковское дело -> США
Банковское дело -> Великобритания
Банковское дело -> Япония
...

Кроме того, у меня есть другая модель, в которой отрасль и местоположение выбираются пользователем (на сайте). Так, если выбрана отрасль "Банковское дело", я хочу показать только те места, которые доступны для банковского обслуживания. Вот основной дизайн, который я уже реализовал (для демонстрации):

class Industry(models.Model):
    """ Model representing industries. """
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, help_text='Unique ID for this industry and location')
    name = models.CharField(blank=False,null=True,max_length=100,verbose_name="Industry")
    location = models.CharField(blank=False,null=True,max_length=100,verbose_name="Location")

    def __str__(self):
        field_values = get_val(self) #this functions works
        return ' '.join(field_values)

    class Meta:
        db_table = 'Industry'


class Select(models.Model):
    """ Model Select """
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, help_text='Unique ID Select')
    industry = models.ForeignKey('Industry',on_delete=models.SET_NULL,related_name='+',blank=False,null=True,max_length=100,verbose_name="Industry")
    location = models.CharField(blank=False,null=True,max_length=100,verbose_name="Location")

    def __str__(self):
        field_values = get_val(self)
        return ' '.join(field_values)

    class Meta:
        db_table = 'Select'

В качестве суперадмина предположим, что в модели Industry я создаю Banking->USA, Banking->UK и в модели Select я хочу выбрать Banking, а для местоположения я хочу выбрать из доступных мест для Banking.

Как я должен изменить каждую из этих моделей и достичь того, что я пытаюсь сделать?

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