我想用Django的。具有相关子对象列表的filter()方法返回包含所有子记录的父对象集。见下面的例子。
用户是父对象,颜色是与用户直接相关的子对象
[红色,蓝色]
[黑色、紫色、绿色、蓝色]
[红、蓝、绿]
[红、蓝、绿、白]
users=用户。过滤器(用户颜色=颜色)
“颜色”是由帖子设置的列表。例如,[红色、蓝色、绿色]
当前,用户包含具有任何[红色、蓝色、绿色]
的用户集。对于上面的示例集,我目前正在使用上面的代码获取User1
、User2
、User3
和User4
。也就是说,它正在使用OR搜索。我只想返回具有所有指定颜色的用户。即,使用和搜索。对于上面的示例,我只想获取User3
和User4
。
只有父记录(用户)集具有所有请求的子记录(颜色),最好的方法是什么?有没有Django方法可以很容易地做到这一点?或者我需要一个循环来过滤每种颜色?
谢谢!
假设您从其他地方获得颜色列表,我猜是这样的:
from django.db.models import Q
# list of color instances
colors = [red, green, blue]
# create a list Q filters dynamically
filter_by_this = [Q(user_colors__color=color) for color in colors]
# filter using the filter as a list of arguments
users = users.filter(*filter_by_this)
这没有经过测试,但我认为应该是这样的。
在任何情况下,您都应该阅读有关使用Q对象进行过滤的内容。
一个简单的for循环就足够了:
# list of color instances
colors = [red, green, blue]
for x in colors:
users = users.filter(user_colors__color=x)
连续过滤器将作为AND操作
存储在Django模型中的元素如下 示例数据如下: . 结果:找到对象- 结果:找到对象- 结果:找到对象- 结果:未找到对象 如何使用过滤器和正则表达式进行这些查询?
我看不到任何关于何时应该使用查询或过滤器或两者结合的描述。他们之间有什么区别?谁能解释一下吗?
为了提供良好的用户体验,实现需要做一些事情 视图中的 : 检查传递的筛选器参数是否有效 检查筛选器的类型(基于其他模型或自定义筛选器),以便将正确的条件应用于查询集 (可选)使筛选器累积的方法(即可以不断添加筛选器) 根据筛选器选择显示正确的结果集n 显示筛选器时,请识别应用的筛选器,以便当前应用的筛选器显示为文本,而不是超链接。
问题内容: 这是形式的字段声明: 我想将初始值设置为,这似乎不起作用。我玩过参数,引号/无引号等,但是没有变化。 如果有可能,谁能给我一个明确的答案?和/或对我的代码段进行必要的调整? 我正在使用Django 1.0 问题答案: 实例化表单时,请尝试设置初始值:
我正在制作一个过滤器,允许我生成一个映射,其值是文件列表,为此,我尝试使用流。我有以下文件列表示例: null 这段代码只是使用键将CLA文件保存在映射中的列表中。这是正确的,但我需要添加其余的文件。
我需要过滤一个列表