Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django ForeignKey可用于任何类型的模型_Python_Django_Django Models_Foreign Keys - Fatal编程技术网

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
类。