答案是否定的,你不能同时拥有 hstore 库的当前实现。看一下 init 函数(这是来自他们在 github 上的源代码):
class DictionaryField(HStoreField):
description = _("A python dictionary in a postgresql hstore field.")
def __init__(self, *args, **kwargs):
self.schema = kwargs.pop('schema', None)
self.schema_mode = False
# if schema parameter is supplied the behaviour is slightly different
if self.schema is not None:
self._validate_schema(self.schema)
self.schema_mode = True
# DictionaryField with schema is not editable via admin
kwargs['editable'] = False
# null defaults to True to facilitate migrations
kwargs['null'] = kwargs.get('null', True)
super(DictionaryField, self).__init__(*args, **kwargs)
您可以看到,如果设置了架构,则该字段的可编辑参数设置为 false,这是 Django 管理员查看是否应该允许您在管理 UI 中编辑值的内容。
不幸的是,您只有几个选择:通过创建您自己的继承自该类的类来覆盖它,或者在他们的 github 页面上打开一个拉取请求或问题,并希望有人能找到它。