一个模型有多个“来源”

时间:2019-08-01 07:11:07

标签: django django-models

我遇到模型设计问题。

模型用户,患者,医生,护士可以编写注释。它们都具有Note的外键。我想要在“注释”中添加一个字段,以便知道注释来自哪种类型的模型。在SQL中,我可以编写类似

的内容
SELECT * FROM notes WHERE origin='nurse'

我是否必须添加一个字段作为CharField并指定引用的模型字符串名称,或者是否有一个特定于我要执行的操作的字段类型?

谢谢

1 个答案:

答案 0 :(得分:1)

这正是ContentType model的用途。

class Note(models.Model):
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)

现在您可以这样做:

ContentType.objects.get_for_model(Nurse)