请教一下 Django 如何使用 Many To Many 的属性过滤

2018-06-12 11:36:36 +08:00
 coolair
class Parent(models.Model):
    items = models.ManyToManyField(Item, verbose_name='子项')

class Item(models.Model):
    sn = models.CharField('序列号', max_length=20)

现在想得到所有 items 都小于某个值 value 的 parent: Parent.objects.filter(items__sn__lt=value).all() 这样写不对,只要有一个 item 小于 value 就会出来,而且会重复出现几次,正确的写法是怎样的呢?

825 次点击
所在节点    问与答
2 条回复
SingeeKing
2018-06-12 11:53:38 +08:00
p = []
items = Item.objects.filter(sn__lt=value)
for item in items:
p.append(item.parent)
coolair
2018-06-12 12:01:47 +08:00
@SingeeKing 这样不对吧,不是所有 items 都小于了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/462402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX