gpt4 book ai didi

python - django - 在 ManyToMany 和 ForeignKey 中使用 related_name

转载 作者:太空狗 更新时间:2023-10-30 01:07:32 25 4
gpt4 key购买 nike

我有两个模型(也使用 auth.user)。 auth.userRide 模型之间有两个关系,Ride 模型和Destination 模型有它们之间的两种关系。

骑行有许多中间目的地和一个最终目的地。骑行有许多乘客和一个司机。

class Destination(models.Model):
name=models.CharField(max_length=30)

class Ride(models.Model):
driver = models.ForeignKey('auth.User', related_name='rides_as_driver')
destination=models.ForeignKey(Destination)
leaving_time=models.DateTimeField()
num_of_spots=models.IntegerField()
passengers=models.ManyToManyField('auth.User', related_name="rides_as_passenger")
mid_destinations=models.ManyToManyField(Destination)

我试图完全理解 related_name 属性的含义。我读了很多关于它的资料,但仍然不确定...

我还读到如果模型之间有两个关系,我必须使用 related_name。

谁能给我解释一下:

  • related_name 属性到底是什么?我什么时候使用它?
  • 我将在何时何地使用 rides_as_driver 和 rides_as_passenger?
  • 我应该在目的地字段中输入什么? (中间目的地和最终目的地)?

非常感谢!

最佳答案

顾名思义,这是您从相关模型访问模型时使用的名称。因此,如果您有一个用户实例,my_user.rides_as_driver.all() 将为您提供所有 Rides,其中 ride.driver == my_usermy_user。 rides_as_passenger.all() 将为您提供 ride.passengers 包含 my_user 的所有游乐设施。

关于python - django - 在 ManyToMany 和 ForeignKey 中使用 related_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30394225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com