相同类Django的两个外键

时间:2018-06-25 10:43:16

标签: django django-models django-forms django-templates django-views

如何访问相同类别的两个外键

class Countries(models.Model):
    name = models.CharField(max_length=200,null=True)


class bookings(models.Model):
    Pickup = models.ForeignKey(Countries,on_delete=models.CASCADE,null=True)
    Dropoff = models.ForeignKey(Countries,on_delete=models.CASCADE,null=True)

ERROR reverse accessor  of Pickup clashes with reverse accessser  for Dropoff

2 个答案:

答案 0 :(得分:1)

您必须使用相关的名称关键字,以便默认情况下反向访问将采用相同的名称,这就是为什么可能会发生冲突的原因。

 class bookings(models.Model):
   Pickup = models.ForeignKey(Countries,on_delete=models.CASCADE,null=True, related_name="pickup")
   Dropoff = models.ForeignKey(Countries,on_delete=models.CASCADE,null=True, related_name="dropoff")

答案 1 :(得分:1)

如下更改模型:

class bookings(models.Model):
    Pickup = models.ForeignKey(Countries, on_delete=models.CASCADE, null=True, related_name='pickup_countries')
    Dropoff = models.ForeignKey(Countries, on_delete=models.CASCADE, null=True, related_name='dropoff_countries')

参考:Django related_name