1. ホーム
  2. django

Django のクエリフィルタで変数カラムを使う

2023-08-29 02:08:11

質問

を使用してクエリセットをフィルタリングしようとしています。

info=members.filter(name__contains=search_string)

問題は、ユーザーがどのフィールドを検索したいのかが事前にわからないことです。

variable_column = 'name'
search_type = 'contains'
filter = variable_column + '__' + search_type
info=members.filter(filter=search_string)

どうすればいいんだ?

リッチな

どのように解決するのですか?

あと少しです...

members.filter(**{'string__contains': 'search_string'})

何をやっているのか理解するために、ググってみてください : ) Pythonのkwargsを理解する

** は、辞書のキーと値のペアをキーワード引数と値のペアに展開します。

例をソリューションに適応させるために

variable_column = 'name'
search_type = 'contains'
filter = variable_column + '__' + search_type
info=members.filter(**{ filter: search_string })