【发布时间】:2012-02-18 16:25:50
【问题描述】:
我有一个非常简单的查询:select * from tbl1 where title not in('asdasd', 'asdasd')。
如何将它翻译成 Django?这就像我想要的相反:Table.objects.filter(title__in=myListOfTitles)
【问题讨论】:
标签: django django-orm
我有一个非常简单的查询:select * from tbl1 where title not in('asdasd', 'asdasd')。
如何将它翻译成 Django?这就像我想要的相反:Table.objects.filter(title__in=myListOfTitles)
【问题讨论】:
标签: django django-orm
尝试使用exclude
Table.objects.exclude(title__in=myListOfTitles)
【讨论】:
Publisher.objects.filter(book__author__in=XXX)。
User.objects.exclude(id__in=Group.objects.get(id=kwargs['group_id']).user_ids.all()),它返回不在以group_id 为 id 的组中的所有用户。
Table.objects.exclude(title__in=myListOfTitles)
【讨论】:
(这个帖子很旧,但仍然可以用谷歌搜索)
您可以将models.Q 与“~”一起使用,如下所示:
Table.objects.filter(~Q(title__in=myListOfTitles))
当你有多个条件时,这个方法特别有用。
【讨论】:
Django 提供了两个选项。
exclude(<condition>)
filter(~Q(<condition>))
使用Q()方法的方法2
>>> from django.db.models import Q
>>> queryset = User.objects.filter(~Q(id__lt=5))
【讨论】: