def fixup_instance(sender, **kwargs):
instance = kwargs['instance']
for f in instance._meta.fields:
if isinstance(f, JSONAttributeField):
fi = getattr(instance, f.name)
if not isinstance(fi, JSONAttributes):
setattr(instance, f.name, JSONAttributes(fi))
fld = getattr(instance, f.name)
fld._instance = instance
if hasattr(instance, '_attr_field'):
raise FieldError('multiple JSONAttributeField fields: '
'only one is allowed per model!')
instance._attr_field = fld
if not hasattr(instance, '_attr_field'):
raise FieldError('missing JSONAttributeField field in '
'fixup_instance decorator')
评论列表
文章目录