0

カスタム「インデックス」でDjangoのオブジェクトをフィルタリングするために、フォームからビューにフィルターパラメーターを渡そうとします:

profile_list = Profile.objects.filter(
    company=request.user.company,
)
if request.method == 'POST':
    search_key = request.POST.get('skey')
    search_query = request.POST.get('squery', None)
    profile_list = profile_list.filter(
        search_key=search_query
    )

しかし、私はこのコードを使用できません。

Cannot resolve keyword 'search_key' into field. 

これは正常です。search_key 属性はありません。これを適切に機能させるには、どのようにフォーマットすればよいですか?

4

2 に答える 2

1

dict を作成し、それを渡してフィルタリングすることができます

qdict = { search_key: search_query }
profile_list = profile_list.filter( **qdict)
于 2013-05-28T07:16:13.620 に答える
1

変数の値をsearch_keyキーワードとして使用する場合は、それを dict にスローし、次の方法でキーワード展開を使用する必要があります。**

profile_list = profile_list.filter(
   **{search_key:search_query}
)



profile_list = profile_list.filter(
   **{'%s__contains' % search_key:search_query}
)
于 2013-05-28T07:15:14.807 に答える