比较__exact和get()

时间:2017-02-17 08:06:38

标签: django django-models

如果我们可以使用get()简单地获取数据,那么__exact查询查找的需求是什么。

我的意思是__exact在查询集中的额外好处是什么?

2 个答案:

答案 0 :(得分:0)

.get()用于获取单个实例。当确定查询集返回单个对象时,我们使用get。 如果存在多个实例,它将在控制台上引发错误:

get() returned more than one person -- it returned 2!

Person模型的典型get查询是:

Person.objects.get(id=1)

但是,__exact与查询集一起用作参数检查。例如: 如果我们有一个模型Person,并且你想找到名字正好=“Luv33preet”的所有人物对象。

对此的Queryset将是:

Person.objects.filter(name__exact="Luv33preet")

我希望这有帮助!

答案 1 :(得分:0)

两者都具有不同的用途

models.py -

class Model1.py():
    name= models.CharField(max_length=1000,null=True)

views.py(查询) -

  Model1.objects.get(name='RakeshRao') #retrieve single object
  Model1.objects.get(name__exact='RakeshRao') #part of query same as 'LIKE' in SQL