Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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中引用自身的模型实例?_Python_Django_Model - Fatal编程技术网

Python 如何保存在django中引用自身的模型实例?

Python 如何保存在django中引用自身的模型实例?,python,django,model,Python,Django,Model,我有以下代码: from django.db import models class MyModel(models.Model): parent = models.ForeignKey('self', on_delete=models.CASCADE, related_name='parent') 在某些情况下,我希望模型实例是它自己的父实例。这可以通过保存新实例然后分配父字段来完成,但我需要在保存之前完成,因为有些代码依赖于post_save信号,并且需要模型的父信息。据我所知,

我有以下代码:

from django.db import models

class MyModel(models.Model):
    parent = models.ForeignKey('self', on_delete=models.CASCADE, related_name='parent')


在某些情况下,我希望模型实例是它自己的父实例。这可以通过保存新实例然后分配父字段来完成,但我需要在保存之前完成,因为有些代码依赖于post_save信号,并且需要模型的父信息。

据我所知,您不能这样做,也许您可以将字段设置为
null=True
,并使用
None
,以便
post_save
模型知道这一点。我还认为,即使有可能,
post_save
也不会看到父对象的id,因为它只会检索主键并将其设置为“in mempory”对象。这是否回答了您的问题@PouyaEsmaeili:但这部分是固定的,在模型/类级别,它确实引用了模型。问题是,如何在对象级别以及构建之后立即引用它。据我所知,您不能这样做,也许您可以将字段
null=True
,并使用
None
,以便
post\u save
模型知道这一点。我还认为,即使有可能,
post_save
也不会看到父对象的id,因为它只会检索主键并将其设置为“in mempory”对象。这是否回答了您的问题@PouyaEsmaeili:但这部分是固定的,在模型/类级别,它确实引用了模型。问题是,如何在对象级别以及构建之后立即引用它。