我正在子类JSONField
化以稍微不同地处理默认值。具体来说,我通过选择选项(来自django-choices
)并基于此构建一个字典。虽然它有效,但我可以理解地收到警告说我的新默认值不可调用。我该如何解决?
class JSONChoicesField(JSONField):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.default is NOT_PROVIDED:
self.default = self.get_default()
def _get_default(self):
default = super()._get_default()
if not default and self.choices:
default = dict()
for option_key, option_value in self.choices:
if option_key not in self.exclude:
default[option_key] = {
'display': option_value
'show': True
}
return default
我已经尝试过设置self.default = self.get_default
,但是在迁移时会导致问题,因为self
在这种情况下不存在。return lambda: default
也不起作用,因为它不想要匿名函数。