我制作了自定义字段,基本上是“升级”ForeignKey
字段。但是,我忘了将on_delete=models.PROTECT
设置为默认值(该字段的所需默认行为)。
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 ...
如果我将on_delete
添加到kwargs
,则不会发生任何变化。如果我将on_delete
添加到构造函数调用(即手动每次使用字段),那么它就可以工作。
我想更新该字段的每个用法/实例,将on_delete
设置为PROTECT
。那么,我怎样才能让Django知道字段的默认行为/属性的变化?
编辑 - 说明:我正在使用Django 1.7中的本机迁移。我找到deconstruct()
,但我不知道在这种情况下我应该如何使用它。
答案 0 :(得分:0)
根据您是否使用Django 1.7或South的本机迁移,您可能需要在自定义字段中添加deconstruct()
- 方法或south_field_triple
。