从this question我得到了在我的Django模型中覆盖deepycopy的想法。我从该问题中获取了代码片段并将其放入我的模型中,并带有以下签名:
def __deepcopy__(self, *args, **kwargs):
但是我希望能够传递'field'和'value'参数,但这不起作用。当我调用时:
deepcopy(s1, field='foo',value='bar')
使用kwargs ['field']和kwargs ['value']试图从方法体中拉出params,我得到以下错误:
File "<stdin>", line 1, in <module>
TypeError: deepcopy() got an unexpected keyword argument 'field'
顺便说一句,我假设我必须导入deepcopy方法才能使用它,我正在使用它:
from copy import deepcopy
我的理解存在一些错误,提前感谢解释。
答案 0 :(得分:1)
不确定您要对字段和值参数做些什么,但不能按照您尝试的方式进行。由于您没有对deepcopy函数本身做任何事情,因此它对您在模型 deepcopy 方法中所做的更改一无所知。
如果您查看有关复制的文档,请说明如何覆盖复制和深度复制http://docs.python.org/library/copy.html
如果你真的需要在复制时传递选项,你可以考虑制作自己的方法,而不是试图覆盖内置行为。
希望这有帮助!请随时回复更多详细信息,了解您正在尝试使用其他参数。