Extending JSONField to rename-able keys
I don't understand the code.

For sqlite json, I imagine it is possible but not sure off the top of my head.
I am thinking of doing something like this:

    class JSONValueField(JSONField):
        def __init__(json_key, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.ref = json_key
        
        def db_value(self, value):
            d = dict()
            for k, v in value.items():
                d[self.ref.from_(k)] = v

            return json.dumps(d, ensure_ascii=False)
        
        def python_value(self, value):
            d = dict()
            for k, v in json.loads(value).items():
                d[self.ref.to_(k)] = v
            
            return d
    
    
    class JSONKeyField(JSONField):
        def __init__(*args, **kwargs):
            super().__init__(*args, **kwargs)
            self.from_ref = dict()
        
        def python_value(self, value):
            d = json.loads(value)
            for k, v in d.items():
                self.from_ref[v] = k
            
            return d
        
        def to_(self, k):
            return self[k]
        
        def from_(self, v):
            return self.from_ref[v]

        # For `self.db_value`, probably fill with k, uuid4(), like
        def add(self, k):
            self[k] = uuid4()

        def remove(self, k):
            self.pop(k)

Or Probably, extending ManyToManyField()

BTW, is there an easy way to rename Key in JSON, for every entries?