颜色和尺寸是使用 django 中的 GET 方法从 URL 获取的
颜色和大小是复选框输入,并作为 view.py 文件中的列表接收 https://i.stack.imgur.com/abQ9Z.png
我正在使用颜色和尺寸属性过滤我的产品表
mydict = dict(request.GET)
if 'size' in mydict:
result1 = Product.objects.filter(attributes__size__in=mydict['size'])
if 'color' in mydict:
result2 = Product.objects.filter(attributes__color__in=mydict['color'])
result = result1.intersection(result2)
没有必要使用intersection
这里。组合过滤器会好得多。还,request.GET
已经是一个字典。
result = Product.objects.all()
if 'size' in request.GET:
result = result.filter(attributes__size__in=request.GET['size'])
if 'color' in request.GET:
result = result.filter(attributes__color__in=request.GET['color'])
如果您有很多参数,并且它们都映射到attributes
,你可以动态地做到这一点:
result = Product.objects.all()
for key, value in request.GET:
result = result.filter(**{'attributes__{}__in'.format(key): value})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)