【发布时间】:2010-04-11 20:44:54
【问题描述】:
这只是一个例子,但给出了以下模型:
class Foo(models.model):
bar = models.IntegerField()
def __str__(self):
return str(self.bar)
def __unicode__(self):
return str(self.bar)
还有以下QuerySet对象:
foobar = Foo.objects.filter(bar__lt=20).distinct()
(意思是一组独特的Foo 模型和bar <= 20),我如何生成foobar 的所有可能子集?理想情况下,我想进一步限制子集,以便对于foobar 的每个子集x,x 中所有f.bar 的总和(其中f 是Foo 类型的模型)介于某个最大值和最小值之间。
因此,例如,给定foobar 的以下实例:
>> print foobar
[<Foo: 5>, <Foo: 10>, <Foo: 15>]
还有min=5、max=25,我想构建一个如下所示的对象(最好是QuerySet,但也可能是一个列表):
[[<Foo: 5>], [<Foo: 10>], [<Foo: 15>], [<Foo: 5>, <Foo: 10>],
[<Foo: 5>, <Foo: 15>], [<Foo: 10>, <Foo: 15>]]
我已经尝试过itertools,但它似乎并不特别适合我的需求。
我认为这可以通过复杂的QuerySet 来完成,但我不知道如何开始。
【问题讨论】:
标签: python django django-queryset