2

多くのフィールドを持つモデルがあります。事前定義されたフィールドのリストから空白のフィールドを持つオブジェクトを選択するクエリセットを作成したいと思います。(すべてではなく、いずれかのフィールド)

言う:

fields=['a','b','c','d','e','f','g','h','i','j','k']

私は書くことができました

model.objects.filter(Q(a==Null) | Q(b==Null) | Q(c==Null) ...

より良い方法はありますか?

4

4 に答える 4

0

テーブルの設計方法を再考することをお勧めします。解決策を見つけることに成功したとしても、パフォーマンスの問題に悩まされるでしょう。

PostgreSQL を使用している場合は、HStore が付属しています。

このリンクは、PostgreSQL 9.0 / 9.1 / 9.2 の hstore データ型の操作と、Django 用のこのライブラリを使用して hstore を利用する、django orm 用の PostgreSQL HStore モジュール統合を開始するのに役立ちます。

Hstore はキーと値のストアです。値のあるフィールドのみを保存します。

于 2013-07-12T10:25:36.973 に答える