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

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

  •  
  •   coolair · 2018 年 6 月 12 日 · 1096 次点击
    这是一个创建于 2869 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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  
    PRO
       2018 年 6 月 12 日
    p = []
    items = Item.objects.filter(sn__lt=value)
    for item in items:
    p.append(item.parent)
    coolair
        2
    coolair  
    OP
       2018 年 6 月 12 日
    @SingeeKing 这样不对吧,不是所有 items 都小于了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3126 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:05 · PVG 22:05 · LAX 07:05 · JFK 10:05
    ♥ Do have faith in what you're doing.