我认为这样的行为是为了解决歧义,因为
related_name
将使用外键模型(此处为
Venue
)将有权访问每个模型(此处仅为
VenueTravel
)这已经通过每个相关字段与之相关,因此多个字段具有相同名称的模糊性(尽管正如您所指出的,它们只是引用相同的模型)。
您可以选择使用不同的相关名称:
venue1 = models.ForeignKey('Venue', related_name='from_travel_times')
venue2 = models.ForeignKey('Venue', related_name='to_travel_times')
here
如果模型包含同一模型的多个外键,
你需要
解决歧义
手动使用fk_名称。对于
例如,考虑以下模型
class Friendship(models.Model):
from_friend = models.ForeignKey(
Friend,
on_delete=models.CASCADE,
related_name='from_friends',
)
to_friend = models.ForeignKey(
Friend,
on_delete=models.CASCADE,
related_name='friends',
)
length_in_months = models.IntegerField()
Here
是另一份说明如何处理此类情况的文件:
使用同一父模型具有两个或多个外键的模型
有时可能有多个外键指向同一个外键
模型以这个模型为例:
from django.db import models
class Friendship(models.Model):
to_person = models.ForeignKey(Person, on_delete=models.CASCADE, related_name="friends")
from_person = models.ForeignKey(Person, on_delete=models.CASCADE, related_name="from_friends")
相关名称
: