Разница в дизайне моделей 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.
Как я должен изменить каждую из этих моделей и достичь того, что я пытаюсь сделать?