Django ManyToMany具有多个条件的过滤器

编程入门 行业动态 更新时间:2024-10-09 13:32:38
本文介绍了Django ManyToMany具有多个条件的过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我的简化模型如下:

class Function(models.Model): name = models.CharField(max_length=20) params = models.ManyToManyField("Param") class Param(models.Model): name = models.CharField(max_length=20) value = models.CharField(max_length=20)

所以,每个函数对象都有参数集,例如:

So, every function object has the set of parameters, for example:

f = Function(name="my_function") f.save() param1 = Param(name="height", value="100") param1.save() param2 = Param(name="width", value="200") param2.save() f.params.add(param1) f.params.add(param2)

问题是我无法用函数名,参数名和参数值的过滤器来选择一个函数。

The problem is that I cannot figure how to select a function using a filter on function name, parameter name and parameter value.

对于上述功能,选择应该是:

For above function, the select should be:

获取名称为my_function的函数,其中包含参数na我的高度和值100AND参数名称宽度和值200。

Get function with name "my_function" which contains parameter with name "height" and value "100" AND parameter with name "width" and value "200".

提前谢谢!

推荐答案

可能会工作:

from django.db.models import Q functions = (Function.objects .filter(name='my_function') .filter(Q(params__name='height') & Q(params__value="100") .filter(Q(params__name="width") & Q(params__value="200"))

更多推荐

Django ManyToMany具有多个条件的过滤器

本文发布于:2023-10-12 04:15:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483696.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   过滤器   条件   Django   ManyToMany

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!