gpt4 book ai didi

python - 如何在映射 Django 模型时使用多个外键

转载 作者:行者123 更新时间:2023-11-29 06:29:44 24 4
gpt4 key购买 nike

我有一个约会、人员和办公室模型。我知道使用 FOREIGN_KEY.to_field 来匹配 pk 以外的东西,但是我如何让它也匹配 office_id?我正在使用 mysql,并且希望尽量减少任何架构更改。

换句话说,如果我需要 appointment.person,那么它应该返回具有 person.office = office.office_id 的 appointment.person。

Imgur

我相信这是关于 django 中的复合键的,这是 not supported由 ORM。有一种东西叫做 unique_together我也许可以使用,但仍不确定如何使用。

class Person(models.Model):
person_id = models.IntegerField() # not pk
office = models.ForeignKey(Office)

class Appointment(models.Model):
appointment_id = models.IntegerField() # not pk
office = models.ForeignKey(Office)
person = models.ForeignKey(Person)

class Office(models.Model):
# mystuff here

最佳答案

为什么在 Person 模型中使用 person_id 和 pk,而在 Office 模型中使用 pk 和 office_id?我会这样做的方式:

class Office(models.Model):
# office stuff here

class Person(models.Model):
office = models.ForeignKey(Office)

class Apointment(models.Model):
person = models.ForeignKey(Person)
office = models.ForeignKey(Office)

由于 django 会为每个模型自动生成 pk,所以我看不到添加这些 _id 字段的理由。

关于python - 如何在映射 Django 模型时使用多个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641187/

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