0

任意の数の検索用語を取り込み、それらの用語で特定のオブジェクトをフィルタリングするビューを作成しようとしています。

私が考えているのは、URL には次のようなパターンがあるということです/[property]=[value]/[property]=[value]/...。このパターンは、ユーザーが望む限り続く可能性があります。次に、次のようにしてこれを解析できますsearch=match.split('/')。次に、次の行に沿って、検索の各項目を反復処理します。

results=myObject.objects.all()
for item in search:
    items=item.split('=')
    results=results.filter(items[0]=items[1])

残念ながら、キーワードを式にすることはできないと言われています。キーワードを変数にする方法はありますか? ありがとう

4

1 に答える 1

0

キーワード引数を辞書として事前に構築し、**構文を使用して渡すことができます。

>>> items = ['a','b','c']
>>> def print_kwargs(**kwargs):
...   for key,value in kwargs.iteritems():
...     print "%s = %s" % (key, value)
...
>>> d = {items[0] : items[1]}
>>> print_kwargs(**d)
a = b

あなたの例:

d = {}
for item in search:
    items = item.split('=')
    d[items[0]] = items[1]
results = results.filter(**d)
于 2013-07-10T13:56:11.790 に答える