Django中的外键关系及选择条件
我有一个合作伙伴类型的表
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')