有什么 hex str to BinaryField 的优雅实现?

class BinaryToHexField(BinaryField):
    description = _("Raw binary data to hex str")

    def __init__(self, *args, **kwargs):
        kwargs['editable'] = True
        super().__init__(*args, **kwargs)

    def value_to_string(self, obj):
        value = self.value_from_object(obj)
        return value.hex(value)

    def to_python(self, value):
        if isinstance(value, str):
            return bytes.fromhex(value)
        return value

这个 value_to_string() 为啥不能作用到默认 url 上(默认 pk 渲染出来是 b'xxxxxxxxxxxxxxxxxxx' )?好像还有其他的问题,没 debug 全。

是要去重写 get_db_prep_value() 吗?

提问原因:我想做个 hex str => BinaryField 的转换,原先用的是重写 model.save(),但是感觉太重了,想自定义个 Field 来实现。

或者说有什么 hex str to BinaryField 的优雅实现?

评论 0