V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

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

  •  
  •   coolair · 2018-06-12 11:36:36 +08:00 · 815 次点击
    这是一个创建于 2348 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 就会出来,而且会重复出现几次,正确的写法是怎样的呢?

    2 条回复    2018-06-12 12:01:47 +08:00
    SingeeKing
        1
    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
        2
    coolair  
    OP
       2018-06-12 12:01:47 +08:00
    @SingeeKing 这样不对吧,不是所有 items 都小于了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2747 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:02 · PVG 21:02 · LAX 05:02 · JFK 08:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.