14

テキストフィールドを持つモデルがあります。そのフィールドに長さが 7 以上の文字列を持つすべてのアイテムを返すルックアップを実行したいと考えています。可能?

そのフィールドが ではないすべてのオブジェクトのルックアップはどう''ですか?

4

3 に答える 3

17

正規表現ルックアップが役立つと思います:

ModelWithTextField.objects.filter(text_field__iregex=r'^.{7,}$')

または、Django モデルで生の SQL クエリをいつでも実行できます。

ModelWithTextField.objects.raw('SELECT * FROM model_with_text_field WHERE LEN_FUNC_NAME(text_field) > 7')

ここで、len_func_name は、DBMS の「文字列長」関数の名前です。たとえば、mysql では「長さ」という名前です。

于 2013-03-29T18:06:22.263 に答える