我在我的一个模型中使用 HstoreField,当我尝试测试它时,出现错误 psycopg2.ProgrammingError: ERROR: function hstore(integer[], text[]) does not exist
。如果我正确理解这个问题,它的发生是因为 hstore 扩展没有在数据库中设置,就像在迁移中通过添加 HStoreExtension 操作( documentation )那样。
如何在默认测试数据库中设置 hstore 扩展并解决我的问题?
最佳答案
感谢Simon Charette ,谁在 django-users 中回答了这个问题:
从异常来看,问题似乎与缺少扩展名无关 但来自尝试使用整数作为键。例如
instance.hstore_field = {1: 'foo'}
代替
instance.hstore_field = {'1': 'foo'}
postgresql 中 hstore 中的键和值只是文本字符串 ( docs ),Django 不会将键对象转换为字符串。所以我的 HStoreExtension 假设是错误的......
关于django - 在 django 测试中使用 HstoreField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200489/