我有一个表单,它将一些参数发送到一个视图,在该视图中,我将这些参数用作查询中的过滤器。搜索参数不是必需的,当表单的某个字段留空时,我不会将其用作筛选条件。你知道吗
我试图为查询创建字符串,但得到一个错误:“太多值无法解包”
你知道会发生什么吗?此外,任何一个更简单的方法来做它的想法也将不胜感激!你知道吗
我的观点是这样的(在dict busca中,键是django模型中的表单名称和值数据库字段)
def index(request):
a={}
busca={'marca':'brand = ', 'modelo':'model = ', 'tamano_min':'size >= '}
for i in request.POST:
if i in ['marca', 'modelo', 'tamano_min']:
valor=request.POST.get(i)
a[i]=str.join(busca[i], valor)
query=list(a.values)
query=' and '.join(query)
latest_products = products.objects.filter(query, )
template = loader.get_template('search/index.html')
context = {'latest_products': latest_products}
return render(request, 'search/index.html', context)
不要通过构造自己的查询来重新设计轮子,而要使用Django ORM的强大功能。你知道吗
例如:
^{} 有助于获取} 结尾有助于添加
POST
参数或None
的值(如果在字典中找不到参数)。^{
>=
条件。你知道吗在使用它们之前,您可能还需要检查
marca
、modelo
和tamano_min
:等等。你知道吗
相关问题 更多 >
编程相关推荐