Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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迁移了解自定义字段内的更改?_Django_Django Models_Models_Django Migrations - Fatal编程技术网

如何让Django迁移了解自定义字段内的更改?

如何让Django迁移了解自定义字段内的更改?,django,django-models,models,django-migrations,Django,Django Models,Models,Django Migrations,我已经创建了自定义字段,它基本上是“升级的”ForeignKey字段。但是,我忘了将_delete=models.PROTECT上的设置为默认值(该字段所需的默认行为) 如果我将on_delete添加到kwargs,则不会发生任何更改。如果我将on_delete添加到构造函数调用中(即在每次使用字段时手动),那么它就可以工作 我想更新该字段的每个用法/实例,将on_delete设置为PROTECT。那么,我如何让Django知道字段默认行为/属性的更改 编辑-澄清:从Django 1.7开始,我

我已经创建了自定义字段,它基本上是“升级的”
ForeignKey
字段。但是,我忘了将_delete=models.PROTECT上的
设置为默认值(该字段所需的默认行为)

如果我将
on_delete
添加到
kwargs
,则不会发生任何更改。如果我将
on_delete
添加到构造函数调用中(即在每次使用字段时手动),那么它就可以工作

我想更新该字段的每个用法/实例,将
on_delete
设置为
PROTECT
。那么,我如何让Django知道字段默认行为/属性的更改


编辑-澄清:从Django 1.7开始,我正在使用本机迁移。我已经找到了,但我不知道在这种情况下应该如何使用它。

根据您使用的是Django 1.7版或South版的本机迁移,您可能需要在自定义字段中添加-method或a。

我找到了deconstruct。我怎么能把它用在那个案子上?我在里面要做什么?
class MyReferenceField( models.ForeignKey ):
    def __init__(self, *args, **kwargs):
        my_args = { 
            'null': True,
            'blank': True,
            'to': Photo,
            #'on_delete': models.PROTECT,  #forgotten property, that I'm adding to the field
        }
        my_args.update( kwargs )
        super(MyReferenceField, self).__init__(**my_args)

    ... MORE STUFF ...