2011-10-20 12 views
1

私はPostgres整数配列フィールドにマップするコンマで区切られた整数フィールドを持つモデルクラスを持っています。私が行うことができるようにしたいどのようなCommaSeparatedIntegerFieldのインデックス値でのフィルタリング

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

は、フィルタ(または何か他の適切な)配列のインデックス付き値の比較を行うためのインターフェースを使用しています。 例:

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

私はこれを行うことはできませんし、私はどのようにフィルタインタフェースのインデックス配列フィールドをするドキュメントで見ることができません知っています。私はこのアクションをデータベース内のSQLで実行したい(コード内で行う必要があるかもしれない)。

私はextra()機能を使用できますが、より良い方法があるかどうかを知りたいと思いますか?

ありがとうございました。

+0

DBレイヤーでその配列を検索する方法があるのは疑いがあります。そのフィールド型は(少なくともMySQLでは)チャーフィールドとして保存されているからです。 SUBSTRING()でextra()を使用することは、私にとって最善の方法です:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr – AJJ

答えて

2

カンマ区切りのフィールド内で特定のエンティティを検索する必要がある場合は、そのデータが正しいフォーマットであるかどうかを検討する必要があります。おそらく、別のテーブルへの外部キーがより適切かもしれません。

+0

フィードバックありがとう – Dave

関連する問題