0
考慮一個火車票預訂應用程序。有很多城市,車站和火車。
每個城市都有一個/多個電臺。很明顯,一個電臺不能在一個以上的城市。每個車站接收一列/多列火車。每列火車訪問一個或多個火車站,最後停在固定的(共同的)目的地。
現在我想製作一個表格,用戶可以選擇他的城市,同一城市的電臺,然後是火車(城市的哪個電臺接收),最後預訂火車。
這是我迄今爲止所做的。如何學習在Django模型中表示覆雜的關係?
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)
請有關如何正確建立關係,因爲我無法爲所選擇的城市顯示正確的車站,同樣,火車所選擇的城市和車站建議。
謝謝。我確實瞭解了一點。 我想問的是,假設我在forms.py中創建一個名爲BookTicket的表單,其中包含城市,車站和火車字段。現在,如果用戶從下拉菜單中選擇城市,則應自動更新與電臺對應的下拉菜單,以便(城市,電臺)爲有效數據。同樣,(城市,車站,火車)也應該是有效的數據。 你有什麼建議可以做同樣的事嗎? –
感謝您接受答案。在下拉菜單中,您可以定義應該用作選項的查詢集。但是,您想要根據另一個字段的選擇來動態更新它。據我所知,你必須爲此使用一些客戶端代碼。例如。通過使用例如發送城市的選擇Jquery和Ajax添加到服務器(當用戶選擇一個城市時),從數據庫獲取查詢集(例如城市中的站點),並返回一個有效站點的json響應,然後用它更新站點字段中的選項。不是那麼容易......祝你好運! – BartDur
檢查這個問題,例如:[Django模型選擇領域 - 取決於其他領域的選擇](http://stackoverflow.com/questions/24431827/django-model-choice-field-depend-on-other-fields-選項) – BartDur