Django相当于SQL不在

Ali*_*Ali 40 django django-orm

我有一个非常简单的查询:select * from tbl1 where title not in('asdasd', 'asdasd').

我如何将其翻译成Django?这就像我想要的相反:Table.objects.filter(title__in=myListOfTitles)

Jam*_*esO 99

尝试使用排除

Table.objects.exclude(title__in=myListOfTitles)
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于相关字段.否定是不同于.例如`Publisher.objects.filter(book__author__in = XXX`). (12认同)
  • 请注意,排除条件之间的“或”位置。 (3认同)

Ale*_*ich 15

Table.objects.exclude(title__in=myListOfTitles)
Run Code Online (Sandbox Code Playgroud)


omi*_*mid 14

(这个线程很旧,但仍然可以用谷歌搜索)

您可以使用models.Q“~”,如下所示:

Table.objects.filter(~Q(title__in=myListOfTitles))
Run Code Online (Sandbox Code Playgroud)

当您有多个条件时,此方法特别有用。