ano*_*non 7 django django-models django-orm
我有一个Route模型应该存储沿该路线的有序停靠列表.我该如何建模这种关系?
class Stop(models.Model):
name = ..
latitude = ..
longitude = ..
class Route(models.Model):
stops_list = # Ordered list of stops on the route
Run Code Online (Sandbox Code Playgroud)
由于一条路线上有很多站点,并且站点可能属于多条路线,因此我将使用ManyToMany来存储这种关系。您可以指定一个直通模型来存储有关关系的数据,例如路线预计到达此站点的时间。添加订单信息的选项有很多。一种简单的方法是使用如下所示的整数订单字段,或者您可以通过arrival_time隐式存储订单。如果这些路由不经常改变,IntegerField 并不是一个糟糕的实现。但是,如果它们确实经常更改,那么您将需要更新字段......这并不理想。
class Stop(models.Model):
name = ..
latitude = ..
longitude = ..
class Route(models.Model):
stops_list = models.ManytoManyField(Stop, through='StopInfo') # Ordered list of stops on the route
class StopInfo(models.Model):
""" Model for storing data about the Stop/Route relationship """
stop = models.ForeignKey(Stop)
route = models.ForeignKey(Route)
arrival_time = models.DateTimeField(auto_now_add=True)
order = models.PositiveIntegerField()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |