Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从queryset中删除(过滤掉)对象_Django_Django Orm - Fatal编程技术网

Django 从queryset中删除(过滤掉)对象

Django 从queryset中删除(过滤掉)对象,django,django-orm,Django,Django Orm,我想从queryset中删除3个对象。这项工作需要一个额外的列表的帮助,但我很确定应该有一个更好的方法来完成这项工作。但是我还没有弄清楚是怎么回事: 我在做什么: ranks = Rank.objects.all() remove_ranks = ['Field Marshall', 'Military Attache', 'Mercenary Recruiter'] new_ranks =[] for rank in ranks: if not rank.name in remove

我想从queryset中删除3个对象。这项工作需要一个额外的列表的帮助,但我很确定应该有一个更好的方法来完成这项工作。但是我还没有弄清楚是怎么回事:

我在做什么:

ranks = Rank.objects.all()
remove_ranks = ['Field Marshall', 'Military Attache', 'Mercenary Recruiter']
new_ranks =[]

for rank in ranks:
    if not rank.name in remove_ranks:
        new_ranks.append(rank)
如何使用Django API实现这一点?

试试看

remove_ranks = ['Field Marshall', 'Military Attache', 'Mercenary Recruiter']
Rank.objects.exclude(name__in=remove_ranks)
它有什么作用

.exclude
.filter

name\uu-in
相当于SQL中的in语句

这应该会产生一个sql查询

Select * from rank where name not in ('Field Marshall', 'Military Attache', 'Mercenary Recruiter')
试一试

它有什么作用

.exclude
.filter

name\uu-in
相当于SQL中的in语句

这应该会产生一个sql查询

Select * from rank where name not in ('Field Marshall', 'Military Attache', 'Mercenary Recruiter')

谢谢,这确实有效。你能给我一个小例子说明“in”实际上是做什么的吗?因为到目前为止,我一直在尝试使用exclude Edit:谢谢你更新post我的更新澄清了它们的功能吗?如果没有,我很乐意延长我的职位。在任何情况下,快速查看一下哪个选项可以让您大致了解Django QuerySet Apibtw:如果这个答案对您来说似乎是正确的,您能接受吗?:-)我不得不再等10分钟才能接受:)谢谢,这确实有效。你能给我一个小例子说明“in”实际上是做什么的吗?因为到目前为止,我一直在尝试使用exclude Edit:谢谢你更新post我的更新澄清了它们的功能吗?如果没有,我很乐意延长我的职位。在任何情况下,快速查看一下哪个选项可以让您大致了解Django QuerySet Apibtw:如果这个答案对您来说似乎是正确的,您能接受吗?:-)我不得不再等10分钟才能接受:)