Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
在Django模型中重写deepcopy_Django_Django Models_Overriding_Deep Copy - Fatal编程技术网

在Django模型中重写deepcopy

在Django模型中重写deepcopy,django,django-models,overriding,deep-copy,Django,Django Models,Overriding,Deep Copy,从那时起,我就有了在Django模型中覆盖deepycopy的想法。我从该问题中提取了代码片段,并将其放入我的模型中,签名如下: def __deepcopy__(self, *args, **kwargs): 然而,我希望能够同时传递“field”和“value”参数,但这不起作用。当我调用: deepcopy(s1, field='foo',value='bar') 由于试图使用kwargs['field']和kwargs['value']从方法体中提取参数,我得到以下错误: File

从那时起,我就有了在Django模型中覆盖deepycopy的想法。我从该问题中提取了代码片段,并将其放入我的模型中,签名如下:

def __deepcopy__(self, *args, **kwargs):
然而,我希望能够同时传递“field”和“value”参数,但这不起作用。当我调用:

deepcopy(s1, field='foo',value='bar')
由于试图使用kwargs['field']和kwargs['value']从方法体中提取参数,我得到以下错误:

File "<stdin>", line 1, in <module>
TypeError: deepcopy() got an unexpected keyword argument 'field'

在此,我的理解有一些错误,提前感谢您的解释。

不确定您正试图对字段和值参数执行什么操作,但您不能以您尝试的方式执行。由于您没有对deepcopy函数本身做任何操作,因此它对您在modelsdeepcopy方法中所做的更改一无所知

如果您在复制时签出文档,它将解释如何覆盖复制和深度复制

如果在复制时确实需要传递选项,则可以考虑自己的方法,而不是试图重写内置行为。

希望这有帮助!请随意回答更多细节,说明你试图如何处理你的额外论点

from copy import deepcopy