我正在创建一个路线查找器,并创建了一个具有 start_location 和 Final_location 关系的车辆模型。我希望它们成为外键,因为我不想在选择开始和最终位置时有多个选项,并且外键定义一对多关系,这意味着一个位置可以有多个车辆,但不能有一个车辆与多个地点相关。
如果我创建多个外键字段并连接到位置,Django 会给我一个错误吗?
它会创建多对多关系吗?
class Destination(models.Model):
name = models.CharField(max_length=100)
state = models.ForeignKey(State, on_delete=models.CASCADE,related_name="destination")
country = models.ForeignKey(Country, on_delete=models.CASCADE,related_name="destination")
class vehicle(models.Model):
start_time = models.CharField(max_length=10)
reaching_time = models.CharField(max_length=10)
startdestination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name="startdestinations")
subdestination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name="subdestinations")
finaldestination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name="finaldestinations")
fare = models.IntegerField()
confirmed = models.BooleanField()
distance = models.IntegerField()
如果我创建多个外键字段并连接到位置,Django 会给我一个错误吗?
related_name=…
[Django-doc] 和 related_query_name=…
[Django-doc] 是唯一的。由于 related_query_name=…
默认为 related_name=…
(如果给定),因此提供唯一的 related_name=…
就足够了,而不是用 given等效的
ForeignKey
构造 related_query_name=…
。
参数[Django-doc] 是 reverse 中关系的名称,因此从
related_name=…
模型到Destination
在这种情况下的模型。因此,将其命名为(通常)没有多大意义 与前向关系相同。因此,您可能需要考虑将Vehicle
关系重命名为startdestination
。vehicles_started