在django测试中使用HstoreField

时间:2016-05-13 02:54:51

标签: django postgresql unit-testing hstore

我在我的一个模型中使用HstoreField,当我尝试测试它时出现错误psycopg2.ProgrammingError: ERROR: function hstore(integer[], text[]) does not exist。如果我正确地理解了这个问题,那就是因为hstore扩展没有像在迁移中那样通过添加HStoreExtension操作(documentation)而在数据库中设置。

如何在默认测试数据库中设置hstore扩展并解决我的问题?

1 个答案:

答案 0 :(得分:2)

感谢Simon Charette,他在django-users中回答了这个问题:

从例外情况看,该问题与缺少的扩展名无关 但是尝试使用和整数作为键。 e.g。

instance.hstore_field = {1: 'foo'} 代替 instance.hstore_field = {'1': 'foo'}

postgresql中hstore中的键和值只是文本字符串(docs),Django不会将键对象转换为字符串。所以我的HStoreExtension假设是错误的方式......