0

我正在子类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也不起作用,因为它不想要匿名函数。

4

0 回答 0