0
列車のチケット予約アプリを検討してください。 都市、駅、列車はです。
各都市には1つ以上のステーションがあります。駅は複数の都市にはできないことは明らかです。各ステーションは1つ以上の電車を受信する。各列車は1つ以上の駅を訪れ、最終的には固定の(共通の)目的地に停車します。
ここでは、ユーザーが自分の都市、同じ都市の駅、次に列車(都市の駅が受け取る)を選択して最終的に列車を予約できる形式を作りたいと思います。
これは私が今まで行ってきたことです。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-choice) – BartDur