Django中的外键关系及选择条件

1 投票
1 回答
786 浏览
提问于 2025-04-16 04:07

我有一个合作伙伴类型的表

PartnerType
Name
Description
RelatedToProject

我有一个合作伙伴主表

Name
Address
PartnerType

我还有一个项目表

Name
Partner (from partner master)

在项目表中,合作伙伴只能是那些“与项目相关”的类型,也就是 RelatedToProject = True 的类型

我该如何在模型定义中实现这个要求呢?

1 个回答

1

我对Django了解不多,但你可以考虑去掉RelatedToProject这个字段,改为添加一个新的类,叫做PartnersRelatedToProjects(或者类似的名字)。然后,只需在这个新类和Partner表之间建立一个普通的外键关系,在Project类中也建立一个指向这个新表的外键。

接着,你需要通过把相关的合作伙伴添加到新的PartnersRelatedToProjects表中,来跟踪哪些合作伙伴与项目有关联。

class Partner(models.Model):
    Name = models.CharField(max_length=200)
    Description = models.CharField(max_length=200)

class PartnersRelatedToProjects(models.Model):
    partner = models.ForeignKey('Partner')

class Project(models.Model):
    name = models.CharField(max_length=200)
    partner = models.ForeignKey('PartnersRelatedToProjects')

撰写回答