过滤CommaSeparatedIntegerField中的索引值

时间:2011-10-20 07:01:27

标签: python sql django

我有一个模型类,它有一个逗号分隔的整数字段,映射到Postgres整数数组字段。

class Observation(models.Model):
    frequencies = models.CommaSeparatedIntegerField(max_length=200)

我希望能够使用过滤器(或其他合适的东西)接口对数组中的索引值进行比较。 例如:

Observation.objects.filter(frequencies[100]__equals = 10)

我知道我不能这样做,我在文档中看不到如何索引过滤器接口中的数组字段。我希望这个动作由数据库中的SQL执行(可能必须在代码中执行吗?)。

我知道我可以使用extra()功能,但我想知道是否有更好的方法?

感谢。

1 个答案:

答案 0 :(得分:2)

如果您发现自己需要在逗号分隔字段中搜索特定实体,则应该考虑这是否是数据的正确格式。也许单独表的外键可能更合适。