我在我的一个模型中使用HstoreField,当我尝试测试它时出现错误psycopg2.ProgrammingError: ERROR: function hstore(integer[], text[]) does not exist
。如果我正确地理解了这个问题,那就是因为hstore扩展没有像在迁移中那样通过添加HStoreExtension操作(documentation)而在数据库中设置。
如何在默认测试数据库中设置hstore扩展并解决我的问题?
答案 0 :(得分:2)
感谢Simon Charette,他在django-users中回答了这个问题:
从例外情况看,该问题与缺少的扩展名无关 但是尝试使用和整数作为键。 e.g。
instance.hstore_field = {1: 'foo'}
代替
instance.hstore_field = {'1': 'foo'}
postgresql中hstore中的键和值只是文本字符串(docs),Django不会将键对象转换为字符串。所以我的HStoreExtension假设是错误的方式......