如何优化以下代码

2024-01-29

颜色和尺寸是使用 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(使用前将#替换为@)

如何优化以下代码 的相关文章

随机推荐

  • Python urlparse——提取不带子域的域名

    需要一种使用 Python urlparse 从 url 中提取不带子域的域名的方法 例如我想提取 google com 来自完整的网址 例如 http www google com 我能想到的最接近的urlparse is the net
  • 如何在Python中将JSON字符串转换为整数?

    如何将此 json 中的年份和 isbn 转换为整数 title The Notebook author Nicholas Sparks year 1996 isbn 0553816713 您可以简单地用相应的 int 值更新这些值 dat
  • XStream:解析时 XML 层次结构崩溃

    我有一个 XML 文档 由 Adob e XFA 表单生成 其中包含如下数据
  • fullcalendar.io 可以在 .net core Blazor 中使用吗?

    我尝试在 Blazor WebAssembly 页面中使用 FullCalendar 任何人都知道如何在 Blazor 中使用 FullCalendar 任何人都可以帮助我吗 我将 FullCalendar 包含在 libman json
  • 安装和导出仅 INTERFACE 库,CMake

    新的 CMake 用户在这里 我使用以下 CMake 文件制作了一个简单的仅标头库 cmake minimum required VERSION 3 7 project mylib VERSION 0 1 LANGUAGES CXX set
  • 是否可以在悬停时隐藏链接地址?

    我已经设置了一个包含很多链接的图表 当您将鼠标悬停在链接上时 它会显示链接在浏览器左下角的位置 这真的让我很烦恼 如下所示 可以删除这个吗 只要我可以隐藏 删除它 任何方法都可以 HTML CSS JS 等 仅当您使用 a 带有集合的元素h
  • 标题和元标签未在服务器中的角度 SSR 中呈现

    我在前端使用 Angular 6 开发了一个网站 默认情况下 Angular 对 SEO 不友好 因此为了做到这一点 我以 Angular Universal 或 Angular SSR 服务器端渲染 的方式实现它 我更新了代码并比较了之前
  • “SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED”和视图

    如果你设置SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED在从具有从多个表中进行复杂选择的视图中进行选择的存储过程中 这个位置READ UNCOMMITTED该视图中所有表的事务隔离级别 Th
  • 使用 Javascript 读取 CSV 标头

    我有一个 csv 文件 其标题如下所示 header1 header2 header3 header4 value1 value2 value3 value4 value1 value2 value3 value4 value1 value
  • 同步三个ajax请求

    我有三个 AJAX 请求相继触发 并且我希望能够同时回显所有数据 ajax type POST url page1 php data var1 var1 success function msg results2 load page2 ph
  • Android Facebook SDK SSO“无法显示您请求的页面”

    我一整天都被这个非常令人沮丧的问题困扰 通过 Google 我发现很多人都有同样的问题 但没有与新的 Android 版 Facebook API 相关的答案 我已完全按照此处列出的步骤进行操作 https developers faceb
  • Yii 嵌套设置到下拉菜单

    I m using Yii nested set behavior which helps me to keep my categories nested as seen here nevermind title rows they are
  • 如何为当前平台使用适当的颜色类别?

    我试图在 iOS 和 OS X 之间共享我的 Scene Kit 代码 但接受颜色 和图像 的 API 调用采用 UIColor UIImage 或 NSColor NSImage 具体取决于平台 如何在 Swift 中创建正确的类而不重复
  • Node 中数千个并发 http 请求

    我有一个包含数千个 URL 的列表 我想通过 http 请求进行健康检查 healt php 这是我的问题 我在节点中编写了一个应用程序 它以集中的方式发出请求 我使用一个变量来控制打开的并发连接数 300 即 一个接一个 每个请求都那么快
  • js 文件中的 php WordPress

    在 js 文件中 我需要获取 WordPress 主题的模板目录 即我需要获取以下值的返回值在 js 文件中 这个想法是这样的 var blogTemplateDir 如何才能实现这一目标 执行此操作的标准 Wordpress 方法是什么
  • 拥有多个步骤文件会打开多个浏览器

    问题 如果我有多个 Steps 文件 当我执行测试时 似乎无论我运行哪个测试 都会为每个 Steps 文件创建 WebDriver 每当我运行测试时 我都会看到一个看似随机的 Chrome 浏览器打开 为了查看 SpecFlow 和 Chr
  • 如何替换已在 Java 中打印在屏幕上的文本?

    我是 Java 新手 为了了解更多信息 我尝试制作一个时钟 它工作得很好 除了每次更改时它都会在新行上打印这一事实之外 我该如何制作才能用新时间替换已经打印出来的文本 public class test public static void
  • 当边缘用 jQuery 显示时停止拖动

    这是该网站的链接 战争游戏地图 http game creeight se 我有一个大的 jQuery 可拖动 div 将地图图像设置为背景 里面有一个较小的 div 上面有溢出 隐藏 重点是让用户像在maps google com 上一样
  • 绘制距原点 X 公里的路线

    跑步 步行距离显示 用户输入位置和距离 我可以以用户输入的距离为半径覆盖一个圆 以用户的位置为中心点 我可以在用户设置的距离处围绕原点设置四个基点 N S E W 并绘制到这些点的路线 这样 B 点距 A 点 100 公里 但映射的路线是
  • 如何优化以下代码

    颜色和尺寸是使用 django 中的 GET 方法从 URL 获取的 颜色和大小是复选框输入 并作为 view py 文件中的列表接收 https i stack imgur com abQ9Z png 我正在使用颜色和尺寸属性过滤我的产品