This looks good, but seems to be only half of the picture. You can pull JSON out of the DB and it is correctly deserialized into the relevant Python object. However, you can't store a Python object and have it automatically serialized to JSON - you need to do that yourself (and by choosing this approach, it can't really be added in later).
Can we also add a _dumps() method (or whatever it needs to be called) to serialize the value to JSON (or raise an exception if it is unserializable)?
This looks good, but seems to be only half of the picture. You can pull JSON out of the DB and it is correctly deserialized into the relevant Python object. However, you can't store a Python object and have it automatically serialized to JSON - you need to do that yourself (and by choosing this approach, it can't really be added in later).
Can we also add a _dumps() method (or whatever it needs to be called) to serialize the value to JSON (or raise an exception if it is unserializable)?