Python django ForeignKey可用于任何类型的模型
所以我有一个模型,评论。在其中,它必须保留对其评论内容的引用。Python django ForeignKey可用于任何类型的模型,python,django,django-models,foreign-keys,Python,Django,Django Models,Foreign Keys,所以我有一个模型,评论。在其中,它必须保留对其评论内容的引用。 它可以是对一篇博客文章的回应,也可以是对另一条评论的回应,等等 那么,我该如何存储这种关系呢?通常,我只会使用外键存储信息。但是ForeignKey需要知道它引用的模型的类型 Django中是否内置了可以引用任何类型模型的ForeignKey?如果没有,实现这种关系的最佳方式是什么 以下是我的想法: 我可以使用一个整数来存储它响应的对象的id,然后使用一个字符域来存储类型,然后通过执行类似于globals()[type\u name
它可以是对一篇博客文章的回应,也可以是对另一条评论的回应,等等 那么,我该如何存储这种关系呢?通常,我只会使用外键存储信息。但是ForeignKey需要知道它引用的模型的类型 Django中是否内置了可以引用任何类型模型的ForeignKey?如果没有,实现这种关系的最佳方式是什么 以下是我的想法: 我可以使用一个整数来存储它响应的对象的id,然后使用一个字符域来存储类型,然后通过执行类似于
globals()[type\u name].objects.get(id=id)的操作来获取对象
但是如果我使用这种方法,我想如果我需要做任何复杂的事情,比如搜索,我会遇到一些问题
或者,我可以为它可能响应的每个对象创建一个不同的注释类(当然是自动的)。但同样,这会造成限制。我再也不能像Comment.objects.get(id=5)
或者,我可以让我的comment类为它可能响应的每一个可能的事物都有一个ForeignKey,为每个comment保留除1之外的所有值。似乎仍然是一个低于标准的解决方案
建议?您想要Django的。在内置的
contenttypes
框架中查看。页面上说我不能使用对象。使用GenericForeignKey轻松过滤。如果我有一个对象,我想得到所有对它的回复,我该怎么做?再向下滚动一点,查看generirelation
类。