Два внешних ключа одного класса Django - PullRequest
0 голосов
/ 25 июня 2018

Как получить доступ к двум внешним ключам одного класса

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 голосов
/ 25 июня 2018

Измените ваши модели, как показано ниже:

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

0 голосов
/ 25 июня 2018

Вы должны использовать связанное ключевое слово 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")
...