Django将模型与"泛型"宾语

时间:2014-11-17 10:45:26

标签: django models

我想在Django中将模型与多个其他可能的模型相关联。

例如,假设我有一个名为UploadedImage的模型,它只是用户上传的图像。用户可以在很多地方上传图片,让他们说可以将其上传到项目和评论中,因此我还会有ProjectComment模型。

假设我想将任何给定的UploadedImage与项目或评论相关联。有办法做到这一点吗?

如果我只是想将它与一个模型或另一个模型相关联,我会在UploadedImage模型中放下一个外键,就像这样,

project = models.ForeignKey('Project') 

comment = models.ForeignKey('Comment')

但是如果我希望它保持灵活性并能够链接到任何一个呢?

回到C / C ++时代,我想它只是一个通用指针和某种枚举,告诉我指针是什么。 Django / Python会是什么?

我唯一可以想到的就是在那里放入两个外键加上另一个变量告诉它哪个是活跃的,哪个会起作用但看起来不那么优雅"。

任何建议表示赞赏。谢谢!!

1 个答案:

答案 0 :(得分:2)

您可以利用Django Content Type框架来完全满足您的需求。

请参阅Django文档中的generic relations