如何学习在Django模型中表示复杂的关系?

时间:2017-04-06 15:27:05

标签: django django-models orm django-forms

考虑火车票预订应用程序。有很多城市,车站和火车

每个城市都有一个/多个车站。很明显,一个车站不能在一个以上的城市。每个车站接收一个/多个列车。每列火车都会到达一个或多个火车站,最后在固定(公共)目的地停靠。

现在我想制作一个表格,用户可以选择他的城市,同一城市的车站,然后是火车(城市的车站接收),最后预订火车。 这是我到目前为止所做的事情。

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)

请建议如何正确建立关系,因为我无法为所选城市显示正确的车站,同样,也可以为选定的城市和车站进行培训。

1 个答案:

答案 0 :(得分:0)

You could use the _set to find the stations in a city

my_city = City.objects.get(name="my hometown") 
stations_in_city = my_city.station_set.all()

Also see the documentation here and here for some examples.