首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:如何判断RelatedManager中所有对象的特定质量是否相同?

问Django:如何判断RelatedManager中所有对象的特定质量是否相同?
EN

Stack Overflow用户
提问于 2011-03-25 05:11:24
回答 2查看 85关注 0票数 1

假设我有一个来自Swallow -=> Coconut的ManyToManyField。

另外,假设Coconut有一个名为“Young”的布尔值字段。

对于一只给定的燕子,我怎么知道它所有的椰子都是幼小的?

(我真正寻找的不是判断燕子的椰子是否年轻的能力,而是判断查询集中的项目之间是否存在差异值的方法。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 05:34:42

好了,我想通了。我需要:

代码语言:javascript
复制
swallow.coconuts.aggregate(test=Variance('young'))

如果是0,我知道它们都是一样的。

票数 3
EN

Stack Overflow用户

发布于 2011-03-25 05:13:59

代码语言:javascript
复制
if there is no `coconut` for a `swallow` that is `not young`
then all `coconuts` are `young`

编辑:

据我所知,没有queryset方法可以做到这一点,但您可以创建自己的方法,例如:

代码语言:javascript
复制
# property_values is a dictionary : {prop1:val1, prop2:val2,...}
# you can check for multiple properties

def is_same_property_value(related_manager, property_values)
    return related_manager.filter(~Q(**property_values)).count() == 0


res = is_same_property_value(swallow.coconuts_set, {'young':true})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5425582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档