我尝试将filter参数从表单传递给视图,以便通过自定义“index”过滤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属性。我该如何格式化才能正常工作?
答案 0 :(得分:1)
如果您希望将变量search_key
的值用作关键字,则需要将其放入dict并通过**
profile_list = profile_list.filter(
**{search_key:search_query}
)
profile_list = profile_list.filter(
**{'%s__contains' % search_key:search_query}
)
答案 1 :(得分:1)
你可以创建dict并将其传递给过滤为
qdict = { search_key: search_query }
profile_list = profile_list.filter( **qdict)