Я занимаюсь наборами данных, основанными на пресноводных озерах в США.
Так что мои модели в основном - State и Lake. Состояние является внешним ключом в Lake.
Когда я начал загружать данные, я быстро понял, что похоже, что некоторые Lakes граничат с несколькими штатами. Пример: озеро Эр ie переходит в 4 состояния + международная граница.
Затем мне пришлось немного переосмыслить свои модели и придумал следующее:
class State(models.Model):
name = models.CharField(max_length=200, null=True)
def __str__(self):
return str(self.name)
class Lake(models.Model):
state = models.ForeignKey(State, on_delete=models.CASCADE, verbose_name="primary state", related_name="related_primary_state", help_text="Primary State")
state_secondary = models.ForeignKey(State, on_delete=models.CASCADE, null=True, blank=True, related_name="related_secondary_state", verbose_name="secondary state", help_text="Secondary State")
state_three = models.ForeignKey(State, on_delete=models.CASCADE, null=True, blank=True, related_name="related_three_state", verbose_name="three state", help_text="three State")
state_four = models.ForeignKey(State, on_delete=models.CASCADE, null=True, blank=True, related_name="related_four_state", verbose_name="four state", help_text="four State")
state_five = models.ForeignKey(State, on_delete=models.CASCADE, null=True, blank=True, related_name="related_five_state", verbose_name="five state", help_text="five State")
name = models.CharField(max_length=200, null=True)
def __str__(self):
return str(self.name)
Было бы хорошо сделать, или есть лучшие способы подойти к этому?
Спасибо!