2024-04-25 13:27:27 发布
网友
filter和get的区别是什么
>>> Question.objects.filter(id=1) <QuerySet [<Question: What's new?>]> >>> Question.objects.get(pk=1) <Question: What's new?>
在“filter”中,您可以添加更多的属性到search by,或者您可以获得满足您对DB的查询的对象列表。
区别在于,filter返回一个queryset对象,而get返回所需的对象。
如果使用filter(),则通常在期望不止一个对象符合条件时执行此操作。如果没有找到与条件匹配的项,filter()将返回am empty queryset而不引发错误。
如果使用get(),则需要一个(并且只有一个)符合条件的项。如果项不存在或存在多个符合条件的项,Get将引发错误。因此,在尝试时,您应该始终使用if。。除了。。阻止或使用快捷方式函数(如get_object_或_404)以正确处理异常。
在“filter”中,您可以添加更多的属性到search by,或者您可以获得满足您对DB的查询的对象列表。
区别在于,filter返回一个queryset对象,而get返回所需的对象。
如果使用filter(),则通常在期望不止一个对象符合条件时执行此操作。如果没有找到与条件匹配的项,filter()将返回am empty queryset而不引发错误。
如果使用get(),则需要一个(并且只有一个)符合条件的项。如果项不存在或存在多个符合条件的项,Get将引发错误。因此,在尝试时,您应该始终使用if。。除了。。阻止或使用快捷方式函数(如get_object_或_404)以正确处理异常。
相关问题 更多 >
编程相关推荐