同一类Django的两个外键
如何访问同一类的两个外键同一类Django的两个外键,django,django-models,django-forms,django-templates,django-views,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,o
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
您必须使用related name关键字,这样默认情况下,反向访问将使用相同的名称,这就是可能发生冲突的原因
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")
您必须使用related name关键字,这样默认情况下,反向访问将使用相同的名称,这就是可能发生冲突的原因
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")
按以下方式更改您的型号:
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')
参考资料:按以下方式更改您的型号:
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')
参考:您应该为
预订
模型中的字段定义相关的\u名称
。像Pickup=models.ForeignKey(国家/地区,on_delete=models.CASCADE,null=True,related_name='Pickup')
您应该为booking
model中的字段定义related_name
。比如Pickup=models.ForeignKey(国家/地区,on\u delete=models.CASCADE,null=True,相关的\u name='Pickup')