python - Django 中的外键关系,带有选择条件

标签 python django foreign-keys

我有一个合作伙伴类型表

PartnerType
Name
Description
RelatedToProject

我有一位合作伙伴大师

Name
Address
PartnerType

我有一个项目表

Name
Partner (from partner master)

项目表中的合作伙伴必须属于“RelatedToProject = True”的类型

如何在模型定义本身中实现这一目标。

最佳答案

我对 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')

关于python - Django 中的外键关系,带有选择条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708074/

相关文章:

python - 如何解决 'django_content_type already exists' ?

python - 如何在 urllib 中捕获 404 错误? ( python 3)

python - 为什么 Pearson 相关性在 Tensorflow 和 Scipy 之间不同

python - 用pickle加速sklearn/机器学习的分类任务?

Django - 默认外键

sql-server - 在表之间设置外键时是否可以忽略varchar长度?

Python 打印不使用 __repr__、__unicode__ 或 __str__ 作为 unicode 子类?

python - django 中的 kwargs - 如何将 unique() 放入 kwargs

MySQL - 即使 InnoDB 打开时外键也不起作用 (Ubuntu 16.04)(错误代码 : 1215)

mysql - mysql中如何连接三张表