Рассмотрим приложение для бронирования билетов на поезд. Здесь много городов, станций и поездов.
В каждом городе есть одна или несколько станций. Очевидно, что станция не может находиться более чем в одном городе. Каждая станция принимает один или несколько поездов. Каждый поезд посещает одну или несколько станций и, наконец, останавливается в фиксированном (общем) пункте назначения.
Теперь я хочу сделать форму, в которой пользователь может выбрать свой город, станции в том же городе, а затем поезд (который получает эта станция города) и, наконец, забронировать поезд.
Это то, что я сделал до сих пор.
class City(models.Model):
name = models.CharField(max_length=50, help_text="Your city name")
class Train(models.Model):
number = models.IntegerField(primary_key=True)
name = models.CharField(max_length=50, help_text="Train")
city = models.ForeignKey(City)
class Station(models.Model):
city = models.ForeignKey(City)
name = models.CharField(max_length=50, help_text="All available stations in your city")
class BookedTicket(models.Model):
city = models.ForeignKey(City)
station = models.ForeignKey(Station)
train = models.ForeignKey(Train)
Пожалуйста, предложите, как правильно установить отношения, потому что я не могу отображать правильные станции для выбранного города, а также поезда для выбранного города и станции.